Php str_replace work不正确(“str_replace”更改$replace参数)

Php str_replace work不正确(“str_replace”更改$replace参数),php,string,str-replace,Php,String,Str Replace,你好! 无论出于何种原因,如果数字大于10,则指定str_replace()对$replace参数进行更改,切割单位并只留下几十个 输入数据($data): 结果$data不正确。(如果$axx>10)为什么? ... <div onclick="window.location.href='/templ4-user-[7].html?[7]';"></div> <div onclick="window.location.href='/templ4-user-[8].

你好! 无论出于何种原因,如果数字大于10,则指定
str_replace()
$replace
参数进行更改,切割单位并只留下几十个

输入数据(
$data
):

结果
$data
不正确。(
如果$axx>10
)为什么?

...
<div onclick="window.location.href='/templ4-user-[7].html?[7]';"></div>
<div onclick="window.location.href='/templ4-user-[8].html?[8]';"></div>
<div onclick="window.location.href='/templ4-user-[9].html?[9]';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]0';"></div>   <------ !!!!!!!
<div onclick="window.location.href='/templ4-user-[1].html?[1]1';"></div>   <------ !!!!!!! 
<div onclick="window.location.href='/templ4-user-[1].html?[1]2';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]3';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]4';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]5';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]6';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]7';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]8';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]9';"></div>
<div onclick="window.location.href='/templ4-user-[2].html?[2]0';"></div>
...
。。。

这是因为在第一次迭代中,所有1都将成为[1],这意味着
12
将成为
[1]2
,并且将不再与12匹配

您可以使用preg_replace代替循环:

$data = <<<EOS
<div onclick="window.location.href='/template-04.php?type=users&char=7';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=8';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=9';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=10';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=11';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=12';"></div>
EOS;

$pattern = '/template-04.php\?type=users&char=(\d+)/i';
$replacement = 'templ4-user-[$1].html?[$1]';
echo preg_replace($pattern, $replacement, $data);

$data=解决方案是反向执行循环,从68到0。
...
<div onclick="window.location.href='/templ4-user-[7].html?[7]';"></div>
<div onclick="window.location.href='/templ4-user-[8].html?[8]';"></div>
<div onclick="window.location.href='/templ4-user-[9].html?[9]';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]0';"></div>   <------ !!!!!!!
<div onclick="window.location.href='/templ4-user-[1].html?[1]1';"></div>   <------ !!!!!!! 
<div onclick="window.location.href='/templ4-user-[1].html?[1]2';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]3';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]4';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]5';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]6';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]7';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]8';"></div>
<div onclick="window.location.href='/templ4-user-[1].html?[1]9';"></div>
<div onclick="window.location.href='/templ4-user-[2].html?[2]0';"></div>
...
$data = <<<EOS
<div onclick="window.location.href='/template-04.php?type=users&char=7';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=8';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=9';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=10';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=11';"></div>
<div onclick="window.location.href='/template-04.php?type=users&char=12';"></div>
EOS;

$pattern = '/template-04.php\?type=users&char=(\d+)/i';
$replacement = 'templ4-user-[$1].html?[$1]';
echo preg_replace($pattern, $replacement, $data);
<div onclick="window.location.href='/templ4-user-[7].html?[7]';"></div>
<div onclick="window.location.href='/templ4-user-[8].html?[8]';"></div>
<div onclick="window.location.href='/templ4-user-[9].html?[9]';"></div>
<div onclick="window.location.href='/templ4-user-[10].html?[10]';"></div>
<div onclick="window.location.href='/templ4-user-[11].html?[11]';"></div>
<div onclick="window.location.href='/templ4-user-[12].html?[12]';"></div>