Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Открыть файл прочитать его и отредактировать

Сообщения:  [1-10]    [11-20]  [21-30] 

 
 автор: pautina   (11.03.2012 в 05:57)   письмо автору
 
   для: pautina   (09.03.2012 в 18:27)
 

Дайте какий либо совет или вариант решения, что то ведь можно сделать?

  Ответить  
 
 автор: pautina   (09.03.2012 в 18:27)   письмо автору
 
   для: pautina   (08.03.2012 в 16:03)
 

Нет ли у Вас каких либо предложений или идей по исправлению ошибки?

  Ответить  
 
 автор: pautina   (08.03.2012 в 16:03)   письмо автору
 
   для: pautina   (07.03.2012 в 15:03)
 

Давайте попробуем разобраться почему удаление не идёт.
При помощи fgets() мы в цикле проходим по каждой строке файла, пока не встретится переход строки,
Исходный файл из которого делается удаление в прикреплённом файле 1-го сообщения.
Нужно удалить всё между $newstr_one и $newstr_dva
скрипт такой

<?php    
    
 header
('Content-type: text/plain; charset=utf-8');    
     
 
$file 'file.txt';    
 
// Open the file to get existing content   
 
$fp fopen$file,"r");  
 
$fp2 fopen ('file2.txt',"w+");  
 
$i=0;  
 while (!
feof($fp) ) {  
   
     
$data fgets($fp);   
    
$newstr_one="";    
    
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';       
    
$pos_findme_one=strpos($data$findme_one);      
    if(
$pos_findme_one !== false) {  
        
$i++;  
        
$newstr_one substr($data0$pos_findme_one); // часть строки от 0 символа до позиции $findme_one      
               
        
$newstr_dva="";    
        
$findme_dva="'),('$i'";      
        
$pos_findme_dva=strpos($data$findme_dva);      
        if(
$pos_findme_dva !== false)  
            
$newstr_dva substr($data$pos_findme_dva); // часть строки от символа                 $findme_dva до конца строки     
           
        
$itog_str=$newstr_one.$newstr_dva;   
    }  
    else  
        
$itog_str$data;  
          
    
fwrite($fp2,$itog_str);  
 }   
 
fclose($fp);   
 
fclose($fp2);   
    
?> 

Пробовал кодировку менять на Кирилица windows, чтоб в файле найти положение $findme_one где русский текст присутствует (Данный урок подготовлен для Вас...)
В исходном файле где
<DIV cl'),
('3','Уроки Photoshop','Рубрика: Эффекты',
помещал эти 2 строки на 1 строку,
всё равно удаление не идёт.

  Ответить  
 
 автор: pautina   (07.03.2012 в 15:03)   письмо автору
 
   для: Lotanaen   (07.03.2012 в 14:40)
 

Как быть в этом случае?
Как код можно подкорректировать?

  Ответить  
 
 автор: Lotanaen   (07.03.2012 в 14:40)   письмо автору
 
   для: pautina   (07.03.2012 в 10:53)
 

Да там много таких символов оказывается - везде где есть перевод строки там и символ конца строки есть.

  Ответить  
 
 автор: pautina   (07.03.2012 в 10:53)   письмо автору
 
   для: Lotanaen   (07.03.2012 в 10:16)
 

Посмотрите прикреплённый файл в 1 сообщении, есть в нём симолы конца строки?
Если да как это исправить можно?

  Ответить  
 
 автор: Lotanaen   (07.03.2012 в 10:16)   письмо автору
 
   для: pautina   (07.03.2012 в 06:00)
 

Видимо у Вас в контенте есть символы конца строки

  Ответить  
 
 автор: pautina   (07.03.2012 в 06:00)   письмо автору
 
   для: pautina   (06.03.2012 в 11:00)
 

Ни посоветуете что либо
 ...<DIV cl'), 
('3','Уроки Photoshop',' 
... 

Может дело в записи этой строки
правильно ли записана строка
 $findme_dva="'),('$i',";   

Контент по скрипту

<?php   
   
 header
('Content-type: text/plain; charset=utf-8');   
    
 
$file 'file.txt';   
 
// Open the file to get existing content  
 
$fp fopen$file,"r"); 
 
$fp2 fopen ('file2.txt',"w+"); 
 
$i=0
 while (!
feof($fp) ) { 
  
     
$data fgets($fp);  
    
$newstr_one="";;   
    
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';      
    
$pos_findme_one=strpos($data$findme_one);     
    if(
$pos_findme_one !== false) { 
        
$i++; 
        
$newstr_one substr($data0$pos_findme_one); // часть строки от 0 символа до позиции $findme_one     
              
        
$newstr_dva="";   
        
$findme_dva="'),('$i'";     
        
$pos_findme_dva=strpos($data$findme_dva);     
        if(
$pos_findme_dva !== false
            
$newstr_dva substr($data$pos_findme_dva); // часть строки от символа                 $findme_dva до конца строки    
          
        
$itog_str=$newstr_one.$newstr_dva;  
    } 
    else 
        
$itog_str$data
         
    
fwrite($fp2,$itog_str); 
 }  
 
fclose($fp);  
 
fclose($fp2);  
   
?> 

Не урезается

  Ответить  
 
 автор: pautina   (06.03.2012 в 11:00)   письмо автору
 
   для: Lotanaen   (06.03.2012 в 10:19)
 

Почему участки кода не удаляются,
в чём может быть дело?

  Ответить  
 
 автор: Lotanaen   (06.03.2012 в 10:19)   письмо автору
 
   для: pautina   (06.03.2012 в 10:09)
 

а что по вашему обозначает цикл while (!feof($fp)) ? да все проходим

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-30] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования