Php preg_更换_回拨卡滞

Php preg_更换_回拨卡滞,php,callback,Php,Callback,我有一个URL数组,通过一个包含的preg_replace_回调函数运行,其思想是每个循环将产生一个新的结果 问题是它只输出第一个结果,就好像在处理第一个URL后暂停一样 代码如下: if (!function_exists('name')) { function name($match) { return($match[1]); } $foo = preg_replace_callback("#[regex]#", "name", $bar); } 有没有办法让它正常工作?谢谢。如果要将函数

我有一个URL数组,通过一个包含的preg_replace_回调函数运行,其思想是每个循环将产生一个新的结果

问题是它只输出第一个结果,就好像在处理第一个URL后暂停一样

代码如下:

if (!function_exists('name')) {
function name($match)
{
return($match[1]);
}
$foo = preg_replace_callback("#[regex]#", "name", $bar);
}

有没有办法让它正常工作?谢谢。

如果要将函数
preg\u replace\u callback()
应用于数组中的所有元素,可能需要执行以下操作:

// put this on the top of the file
function name($match) {
    return($match[1]);
}
然后,要遍历数组的元素:

foreach ($array as $value) {
    $foo = preg_replace_callback("#[regex]#", "name", $value);
    // do stuff with $foo
}

如果要将函数
preg\u replace\u callback()
应用于数组中的所有元素,可能需要执行以下操作:

// put this on the top of the file
function name($match) {
    return($match[1]);
}
然后,要遍历数组的元素:

foreach ($array as $value) {
    $foo = preg_replace_callback("#[regex]#", "name", $value);
    // do stuff with $foo
}
您还可以使用:

您还可以使用:


你只是简化它来说明你的代码,还是这是实际的代码?是的,我在简化代码,它在单独的脚本中使用时效果很好,正则表达式可以完美地拾取并输出所有内容。它只有在同一个脚本中根据URL数组多次使用时才会遇到问题。我不知道你的问题是什么。用实际运行并举例说明问题的简短脚本编辑问题。我这样说是因为,就其本身而言,你所声称的你正在做的事情没有错。哦,用“@artifact”将你的答案直接告诉我,这样我会得到通知,否则我会忘记这个问题:你只是简化它来说明你的代码,还是这是实际的代码?是的,我在简化代码,它在单独的脚本中使用时效果很好,正则表达式可以完美地拾取并输出所有内容。它只有在同一个脚本中根据URL数组多次使用时才会遇到问题。我不知道你的问题是什么。用实际运行并举例说明问题的简短脚本编辑问题。我这样说是因为,就其本身而言,你所声称的你正在做的事情没有错。哦,用“@artifact”把你的答案直接告诉我,这样我会得到通知,否则我会忘记这个问题:在我把它放在那里之前,它甚至不会运行,因为无法重新声明函数错误。你想要真正的正则表达式和所有的?正如我所说,当在单个脚本中使用一次时,代码可以按预期工作,这里的问题是在同一个脚本中多次使用,也就是说,它会反复返回第一个结果。@Clarissa这就是为什么你不将函数声明放入loopsHmmm中的原因,它对我不起作用,仍然会出现无法重新声明的错误。我想我会继续发布我的代码的要点,这样你就可以更好地理解我在做什么$url=array();foreach($url作为$url){$ch=curl_init();--这里的curl代码--foreach($abc[0]作为$xyz){--这里的更多代码--$bar=--这里定义的输入--函数名($match){return($match[1])}$foo=preg_replace_回调(“#[regex]#”,“name”,“$bar);//用$foo}做一些事情希望这能有所帮助,归根结底就是能够回收。在我把它放在那里之前,它甚至不会运行,因为无法重新声明函数错误。你想要真正的正则表达式和所有的?正如我所说,当在单个脚本中使用一次时,代码可以按预期工作,这里的问题是在同一个脚本中多次使用,也就是说,它会反复返回第一个结果。@Clarissa这就是为什么你不将函数声明放入loopsHmmm中的原因,它对我不起作用,仍然会出现无法重新声明的错误。我想我会继续发布我的代码的要点,这样你就可以更好地理解我在做什么$url=array();foreach($url作为$url){$ch=curl_init();--这里的curl代码--foreach($abc[0]作为$xyz){--这里的更多代码--$bar=--这里定义的输入--函数名($match){return($match[1])}$foo=preg_replace_回调(“#[regex]#”,“name”,“$bar);//用$foo}做一些事情希望这能有所帮助,归根结底就是能够回收利用。