В основном я ищу версию 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(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
Вот мои два цента
function str_replace_once($correct, $wrong, $haystack) { $wrong_string = '/' . $wrong . '/'; return preg_replace($wrong_string, $correct, $haystack, 1); }
Вышеприведенная функция используется для замены строки только один раз, но вы можете редактировать эту функцию для выполнения любой другой возможной операции.
Если я правильно понял ваш вопрос ...
<code><?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 "
Эй, вы можете сделать то же самое, используя preg_replace:
$num = 1; while(strpos($str, $findme) !== ) { preg_replace("/$findme/", $num++, $str, 1); }
это делает цикл, хотя он может найти вашу строку и заменить ее на приращение $ num. Поздравил