Preg_replace_callback 存储在数组中
Preg_replace_callback storing in array
我希望将使用 preg_replace_callback 找到的每个匹配项存储在一个数组中,以供稍后使用。这是我到目前为止所拥有的,我无法弄清楚哪里出了问题,目前它正在存储找到的最后一个匹配项,在 $match[0] 和 $match[3].
中
我试图实现的总体目标是用超链接数字替换每个匹配项,然后在其下方打印全文。每个数字都将链接到其相应的文本。
global $match;
$match = array();
$pattern = $regex;
$body = preg_replace_callback($pattern, function($matches){
static $count = 0;
$count ++;
$match = $matches;
return "<a href=\"#ref $count\">$count</a>";
}, $body);
您需要将 global
语句放在函数中。您还需要将新元素推送到 $match
数组,而不是覆盖它。而且我怀疑您想要 href
属性中 #ref
和 $count
之间的 space。
$match = array();
$pattern = $regex;
$body = preg_replace_callback($pattern, function($matches){
global $match;
static $count = 0;
$count ++;
$match[] = $matches;
return "<a href=\"#ref$count\">$count</a>";
}, $body);
我希望将使用 preg_replace_callback 找到的每个匹配项存储在一个数组中,以供稍后使用。这是我到目前为止所拥有的,我无法弄清楚哪里出了问题,目前它正在存储找到的最后一个匹配项,在 $match[0] 和 $match[3].
中我试图实现的总体目标是用超链接数字替换每个匹配项,然后在其下方打印全文。每个数字都将链接到其相应的文本。
global $match;
$match = array();
$pattern = $regex;
$body = preg_replace_callback($pattern, function($matches){
static $count = 0;
$count ++;
$match = $matches;
return "<a href=\"#ref $count\">$count</a>";
}, $body);
您需要将 global
语句放在函数中。您还需要将新元素推送到 $match
数组,而不是覆盖它。而且我怀疑您想要 href
属性中 #ref
和 $count
之间的 space。
$match = array();
$pattern = $regex;
$body = preg_replace_callback($pattern, function($matches){
global $match;
static $count = 0;
$count ++;
$match[] = $matches;
return "<a href=\"#ref$count\">$count</a>";
}, $body);