Автор Тема: fputs... проблемка  (Прочитано 2194 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн eXcimer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rgotups.dtn.ru/
fputs... проблемка
« : 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);
?>

Заранее спасибо!

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
fputs... проблемка
« Ответ #1 : 17 Апреля 2004, 15:41:35 »
Цитировать
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 и обрабатывала его соответствующим образом, возвращая результат обработки.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28