|
|
|
| Вопрос такой: Пишу такой скрипт, который заменял бы одну строку на другую во всех файлах. Ну скажем в форме два поля 1. ввожу туда строку поиска и 2. соответсвенно на что заменить. ТАк вот проблема в том что при открытии HTML файла он(скрипт) не видит ТЕГИ <html>, <head> и другие. Мне это нужно прежде всего для ускорения обработки страниц. А то запарился в каждой одно и тоже исправлять. | |
|
|
|
|
|
|
|
для: viktor
(17.01.2005 в 19:46)
| | Не очень понятен момент: не отображаются теги <html>, <head> в HTML-форме? или они не видны в коде - их нужно найти и они в файле точно есть, а скрипт не видит? | |
|
|
|
|
|
|
|
для: cheops
(17.01.2005 в 20:10)
| | Скажем так. Все что находится между <body> </body > он заменяет на то что мне нужно. Однако когда я пишу заменить <html> или <head> то ничего не происходит. | |
|
|
|
|
|
|
|
для: viktor
(18.01.2005 в 08:12)
| | Я ваще в HTML дуб-дубом, но помоему межту <body> и </body> нету ни <html> ни <head> ! Может поетому ниче и не происходит? | |
|
|
|
|
|
|
|
для: Sfinks
(18.01.2005 в 12:23)
| | Молодец Sfinks! Конечно нету там ничего такого.
Ты в скрипте должен открыть файл для чтения, считать его текст в переменную и там заменить строки, потом результат опять записать в тот же файл. А если на стадии выполнения менять, то только между тегами <BODY> | |
|
|
|
|
|
|
|
для: viktor
(18.01.2005 в 08:12)
| | Здесь без кода ничего не скажешь... не понятен принцип работы скрипта, а, следовательно, и где он может сбоить... может вы приведёте его? | |
|
|
|
|
|
|
|
для: 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);
# извините если есть глупые ошибки...
?>
|
| |
|
|
|
|
|
|
|
для: viktor
(19.01.2005 в 10:13)
| | Зря по регулярному выражению заменяете
<?php
$record = ereg_replace($str,$replace,$stringa);
?>
|
в этом случае у вас будут проблемы со всеми спец-символами, которые используются в регулярных выражениях, так как их нужно будет экранировать. Воспользуйтесь лучше обычной функцией замены
<?php
$record = str_replace($str,$replace,$stringa);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.01.2005 в 12:21)
| | Это тоже пробовал. Не помогло. | |
|
|
|
|
|
|
|
для: viktor
(19.01.2005 в 12:50)
| | "проблема в том что при открытии HTML файла он(скрипт) не видит ТЕГИ <html>, <head> и другие"
Вопрос такой - где скрипт их не видит, может эти тэги просто не отображаются в форме? Вообщем я так и не могу понять в чём проблема... :((( может вы приведёте пример:
1) Вввожу то, ввожу это...
2) нажимаю кнопку данные пошли туда...
3) записался файл...
4) открываю, а там... | |
|
|
|
|
|
|
|
для: 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);
} | |
|
|
|
|
|
|
|
для: 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 в 13:33)
| | Решил наконец то оказывается не надо делать вот етого
if(strcmp($stringa,$str) ==0) . Не знаю почему но теперь все круто. | |
|
|
|