HTML文字列に対してstr_replaceを実行したいのですが、一致するアイテムが見つかるたびに値も増加します。
$link = 1;
$html = str_replace($this->link, $link, $html);
これはすべてを一度に置き換え、同じ文字列 $link を使用して、一致が見つかるたびに $link を増やしたいと考えています。出来ますか?
どうもありがとう
HTML文字列に対してstr_replaceを実行したいのですが、一致するアイテムが見つかるたびに値も増加します。
$link = 1;
$html = str_replace($this->link, $link, $html);
これはすべてを一度に置き換え、同じ文字列 $link を使用して、一致が見つかるたびに $link を増やしたいと考えています。出来ますか?
どうもありがとう
正規表現を使用して、置換の回数を返すことができます。
<?php
$string = "red green green blue red";
preg_replace('/\b(green)\b/i', '[removed]', $string, -1 , $results);
echo $results; // returns '2' as it replaces green twice with [removed]
?>
私があなたを正しく理解している場合(各一致を成長する整数に置き換えたい場合)、使用を奨励する質問に対するコメントはpreg_replace_callback
正しいようです:
$str = 'Hello World';
$cnt = 0;
function myCallback ( $matches ) {
global $cnt;
return ++$cnt;
}
// He12o Wor3d
echo preg_replace_callback( '/\l/', 'myCallback', $str );