基本上就是我要找的就是這個主題的PHP版本: Find, replace, and increment at each occurence of string查找特定字符串,並與增量替換 - PHP
在此先感謝您的幫助!
基本上就是我要找的就是這個主題的PHP版本: Find, replace, and increment at each occurence of string查找特定字符串,並與增量替換 - PHP
在此先感謝您的幫助!
$str = 'a hello a some a';
$i = 0;
while (strpos($str, 'a') !== false)
{
$str = preg_replace('/a/', $i++, $str, 1);
}
echo $str;
嘿,你可以做很多的使用preg_replace函數相同:
$num = 1;
while(strpos($str, $findme) !==) {
preg_replace("/$findme/", $num++, $str, 1);
}
這樣做是循環的,雖然只要能找到你的字符串和由$ NUM增量替換它。電賀
如果我正確地理解你的問題......
<?php
//data resides in data.txt
$file = file('data.txt');
//new data will be pushed into here.
$new = array();
//fill up the array
foreach($file as $fK =>$fV) $new[] = (substr($fV, 0, 1)==">")? str_replace("num", $fK/2, $fV) : $fV;
//optionally print it out in the browser.
echo "<pre>";
print_r($new);
echo "</pre>";
//optionally write to file...
$output = fopen("output.txt", 'w');
foreach($new as $n) fwrite($output, $n);
fclose($output);
這裏是我的兩分錢
function str_replace_once($correct, $wrong, $haystack) {
$wrong_string = '/' . $wrong . '/';
return preg_replace($wrong_string, $correct, $haystack, 1);
}
上述功能是用來替換的字符串occurence只有一次,但你可以自由地編輯該功能以執行每一個其他可能的操作。
preg_replace(array_fill(0, 5, '/'.$findme.'/'), range(1, 5), $string, 1);
例子:
preg_replace(array_fill(0, 5, '/\?/'), range(1, 5), 'a b ? c ? d ? e f g ? h ?', 1);
輸出
a b 1 c 2 d 3 e f g 4 h 5
它的工作原理,我們不能做到這一點與str_replace函數? – Poonam 2012-02-14 07:29:42
@Poonam不,因爲你不能限制'str_replace'只替換一個實例,並且如果你一次性替換它們,它永遠不會增加'$ i' – Joe 2012-02-14 07:31:06