Forum Webscript.Ru
Программирование => PHP => Тема начата: eXcimer от 17 Апреля 2004, 01:45:57
-
Подскажите пожалста ничего не соображающему в PHP... Я решил по-простому состряпать новостной скрипт... Заполняю форму, жму "Отсыл", файл (шаблон) на серваке копируется через copy() - все ОК. Открываю файл fopen(), чтоб залить нужную инфу на места при помощи strlen. Все выходит замечательно если я пытаюсь заменить только одно из значений шаблона, например . В ином случае содержимое страницы копируется столько раз, сколько и попыток записи. Я видимо не умею юзать fputs... Короче как мне заменить несколько значений в одном шаблоне. Скриптик щас какой-НИКАКОЙ выглядит так:
// выше там всякое копирование и т.п.
$WFILE = "/path/to/file.html";
$MOTIF = "";
$file_arry = file($WFILE);
$file = join ("", $file_arry);
$add = "Предположим че-нить на замену MOTIF";
$file = preg_replace("/$MOTIF/", $add, $file);
$fp = fopen("$WFILE", "w");
flock($fp, 1);
// здесь мы и делаем замену. а если нужно повторить операцию, но уже с другим значение $file?
fputs($fp, $file);
flock($fp, 3); //3
fclose($fp);
?>
Заранее спасибо!
-
eXcimer:
$file_arry = file($WFILE); $file = join ("", $file_arry);
Если версия пхп 4.3.0 или выше, замени этот кусок на
$file = file_get_contents($WFILE);
Так быстрее работать будет.
$file = preg_replace("/$MOTIF/", $add, $file);
Здесь можно добавить [p]preg_quote[/p]:
$file = preg_replace(\'/\'.preg_quote($MOTIF).\'/\', $add, $file);eXcimer:
здесь мы и делаем замену
Какую ещё замену?
А preg_replace тогда чем занимался?
eXcimer:
а если нужно повторить операцию, но уже с другим значение $file
А для этого существует такая штука, как функция.
Пишешь функцию, которая бы принимала в качестве аргумента $file и обрабатывала его соответствующим образом, возвращая результат обработки.