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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Ускоритель обработки страниц
 
 автор: viktor   (17.01.2005 в 19:46)   письмо автору
 
 

Вопрос такой: Пишу такой скрипт, который заменял бы одну строку на другую во всех файлах. Ну скажем в форме два поля 1. ввожу туда строку поиска и 2. соответсвенно на что заменить. ТАк вот проблема в том что при открытии HTML файла он(скрипт) не видит ТЕГИ <html>, <head> и другие. Мне это нужно прежде всего для ускорения обработки страниц. А то запарился в каждой одно и тоже исправлять.

   
 
 автор: cheops   (17.01.2005 в 20:10)   письмо автору
 
   для: viktor   (17.01.2005 в 19:46)
 

Не очень понятен момент: не отображаются теги <html>, <head> в HTML-форме? или они не видны в коде - их нужно найти и они в файле точно есть, а скрипт не видит?

   
 
 автор: viktor   (18.01.2005 в 08:12)   письмо автору
 
   для: cheops   (17.01.2005 в 20:10)
 

Скажем так. Все что находится между <body> </body > он заменяет на то что мне нужно. Однако когда я пишу заменить <html> или <head> то ничего не происходит.

   
 
 автор: Sfinks   (18.01.2005 в 12:23)   письмо автору
 
   для: viktor   (18.01.2005 в 08:12)
 

Я ваще в HTML дуб-дубом, но помоему межту <body> и </body> нету ни <html> ни <head> ! Может поетому ниче и не происходит?

   
 
 автор: XPraptor   (18.01.2005 в 12:57)   письмо автору
 
   для: Sfinks   (18.01.2005 в 12:23)
 

Молодец Sfinks! Конечно нету там ничего такого.
Ты в скрипте должен открыть файл для чтения, считать его текст в переменную и там заменить строки, потом результат опять записать в тот же файл. А если на стадии выполнения менять, то только между тегами <BODY>

   
 
 автор: cheops   (18.01.2005 в 13:53)   письмо автору
 
   для: viktor   (18.01.2005 в 08:12)
 

Здесь без кода ничего не скажешь... не понятен принцип работы скрипта, а, следовательно, и где он может сбоить... может вы приведёте его?

   
 
 автор: viktor   (19.01.2005 в 10:13)   письмо автору
 
   для: cheops   (18.01.2005 в 13:53)
 


<?php

  ini_set
('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);

 
$str$_POST["str"];# строка которую ищем

$replace$_POST["replace"];  # строка , на которую заменить



  
$fcode=fopen("eee.txt","r") or die("Error unable to open file");

         
$fcodes=fopen("ee.txt","w") or die("Error unable to open file");

 echo 
$str;         /* На всякий случай выведем переменные */
  
print"<br>";
  echo 
$replace;



  while(!
feof($fcode) )
  {  
$stringa=fgets($fcode);

        print 
"VOT SRAVNENIE strcmp($stringa,$str)";  # странно вроде находит совпадение

            
if(strcmp($stringa,$str)==0)
             {       print
"EST' SOVPADENIA"# а здесь ничего не пишет
              
$record=ereg_replace($str,$replace,$stringa);
                 
fwrite($fcodes,$record);

                                         }
                                           else {
                                           
//  print"<br> NIHRENA <br>";
                                                    
fwrite($fcodes,$stringa);

                                                   }


                                         
//   else print"nihrena ne nashel";
                               
}

                            
fclose($fcode);
                     
fclose($fcodes);

                
# извините если есть глупые ошибки...
               
?>

   
 
 автор: cheops   (19.01.2005 в 12:21)   письмо автору
 
   для: viktor   (19.01.2005 в 10:13)
 

Зря по регулярному выражению заменяете
<?php
  $record 
ereg_replace($str,$replace,$stringa);
?>

в этом случае у вас будут проблемы со всеми спец-символами, которые используются в регулярных выражениях, так как их нужно будет экранировать. Воспользуйтесь лучше обычной функцией замены
<?php
  $record 
str_replace($str,$replace,$stringa);
?>

   
 
 автор: viktor   (19.01.2005 в 12:50)   письмо автору
 
   для: cheops   (19.01.2005 в 12:21)
 

Это тоже пробовал. Не помогло.

   
 
 автор: cheops   (19.01.2005 в 12:56)   письмо автору
 
   для: viktor   (19.01.2005 в 12:50)
 

"проблема в том что при открытии HTML файла он(скрипт) не видит ТЕГИ <html>, <head> и другие"
Вопрос такой - где скрипт их не видит, может эти тэги просто не отображаются в форме? Вообщем я так и не могу понять в чём проблема... :((( может вы приведёте пример:
1) Вввожу то, ввожу это...
2) нажимаю кнопку данные пошли туда...
3) записался файл...
4) открываю, а там...

   
 
 автор: viktor   (19.01.2005 в 13:20)   письмо автору
 
   для: cheops   (19.01.2005 в 12:56)
 

А там тоже самое что и считал из файла. Без изменений.

Прикол в том, что If не работает, ну то есть не пишет EST' SOVPADENIA

if(strcmp($stringa,$str)==0)
{ print"EST' SOVPADENIA"; # а здесь ничего не пишет
$record=str_replace($str,$replace,$stringa);
fwrite($fcodes,$record);

}

   
 
 автор: viktor   (19.01.2005 в 13:33)   письмо автору
 
   для: cheops   (19.01.2005 в 12:56)
 

Есть файл и в нем же скрипт.

<html>

<head>
<title></title>
</head>

<body>

<form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="post">

222
<input type="text" name="str" value="<html>">

<input type="text" name="replace" value="<HACKED>">
<input type="submit" value="Send">
</form>
</body>
</html>

Так вот за место <html> я пишу 222, а за место <HACKED> пишу Tralala

нажимаю кнопку. Далее идет цикл while (см. код выше ).

Вначале читаю файл eee.txt построчно. Вот его содержимое
<html>

<head>
<title></title>
</head>

<body>

<form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="post">

222
<input type="text" name="str" value="<html>">

<input type="text" name="replace" value="<HACKED>">
<input type="submit" value="Send">
</form>
</body>
</html>


Потом Записываю в файл ee.txt. Открываю файл ee.txt а там никаких замен не произошло.

   
 
 автор: viktor   (19.01.2005 в 19:42)   письмо автору
 
   для: viktor   (19.01.2005 в 13:33)
 

Решил наконец то оказывается не надо делать вот етого
if(strcmp($stringa,$str) ==0) . Не знаю почему но теперь все круто.

   
Rambler's Top100
вверх

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