<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">Значи имам следният проблем:
Код:
<?php
$file=file_get_contents ('./име_на_файл');
$new_file = str_replace('текст', 'текст1', $file);
unlink('./име_на_файл');
$handle=fopen('име_на_файл','a');
fwrite($handle, $new_file);
fclose($handle);
?>
Проблема на това нещо, е че ако 'текст' е част от някакъв друг текст примерно искам да заместя думата 'app' с думата 'exe', ако някъде във файла има 'apple' ще се получи 'exele'. Целта е да се направи само 1 заместване (или колкото му кажа аз) и да престане.
Предварително благодаря.
<div align="right">Originally posted by The Mask*-*29/03/2004*:* 14:58:38</div id="right">
</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
В PHP 5 функцията има четвърти параметър, с който задаваш броя замени, ама ако си с по-ниска версия без твоя функция не виждам как би станало... Ето ти вариант на функция, ама сега нямам възможност да я тествам - надявам се да работи []:
Код:
<?php
function str_replace_count($text,$text1,$file,$count)
{
$newfile = $file;
$pos = strpos($file,$text);
if ($pos !== FALSE)
{
while ($pos !== FALSE)
{
$i = $i + 1;
$tmp = substr($newfile,$pos+strlen($text));
$newfile = substr($newfile,0,$pos) . $text1 . $tmp;
if ($i >= $count) {break;}
$pos = strpos($newfile,$text);
}
}
return $newfile;
}
$file=file_get_contents ('./име_на_файл');
$n= 5 // (примерно число)
$new_file = str_replace_count('текст', 'текст1', $file, $n);
unlink('./име_на_файл');
$handle=fopen('име_на_файл','a');
fwrite($handle, $new_file);
fclose($handle);
?>