помогите плиз со строками разобраться

nova

Новичок
помогите плиз со строками разобраться

суть проблемы в следующем, есть определённый html файл, например :
<html>
<br><table align=center>
<tr>
<td align='center'> Diet Pills &nbsp; <font face=Courier New size=1><A href=http://612.>Day Delivery Price </A></font></td>
<td align='center'> Buy Phentermine Cash On Delivery &nbsp; <font face=Veranda size=3 Florida</A></font></td>
</tr>
</table>
<font face=Helvetica>
<center><H2>
~~text-for-replace~~
</H2></center>
</html>
сам хтмл файл не важен, проблема в том чтоб вот эту тему
~~text-for-replace~~ заменить другой строкой, есть переменная $str которая равна тексту $str='hello my dear friend';
Подскажите плиз как это можно сделать.
 

nova

Новичок
я пробовал сделать так:
<?
$fn = "index.html";
$find = fopen($fn,"r+");
while (!feof($find))
{
$sts=fgets($find);
str_replace('~~m_text01~~', $m_text01, $sts);
fputs($find, $sts);
}
fclose($find);
?>
но оно не работает, ошибки нет но выдаёт кучу мусора :(
 

kruglov

Новичок
а куда (в какое место файла) fputs кладет результат, как думаете?

-~{}~ 02.02.06 10:24:

вопщем прочитайте сразу весь файл в память хотя бы тем же [m]file_get_contents[/m], сделайте замены и запишите обратно в файл.
 

Solid

Drosera anglica
Автор оригинала: Leksi
Читай ман по str_replace ты его неправильно используешь.
Всё он правильно использует. Только не понимает, что puts надо делать после, иначе получается каша и считывает и сразу же записывает поверх... Удивительно, что вообще работает (ах, ну да... у него же r стоит... а вот если бы rw, то да..).
PHP:
$data = file_get_contents('file.txt');
$data = str_replace('{some_string}', 'Zdes idet zamena', $data);
file_put_contents('file.txt', $data);
 

kruglov

Новичок
Solid
Неправильно, неправильно... Я тоже не заметил. Он же результат ничему не присваивает.
 

Solid

Drosera anglica
Да, и в самом деле. В любом случае то что я написал должно работать, правда только в пятой версии. В четвёртой последнюю строку надо заменить на fwrite(fopen('file.txt', 'w'), $data);
 
Сверху