您好我有以下代码:
$headerOcc = substr_count($text, "[Image][");
if($headerOcc < '1'){
$text = $text;
}
for ($i=0; $i < $headerOcc; $i++) {
preg_match('/[Image\]\[(.*)\]/', $text, $match);
$headerTitle = ($match[1]);
print($headerTitle);
}
我还有以下变量:
$text = "Hello world [Image][61][Image][62]Hello world";
我想知道是否有一部分文字说[image] [ID]。显然,ID将被一个数字取代,我想得到它。如何获取$ headerTitle以在大括号内返回该ID。当我打印它时,它目前给我这个:
61]**
** [图像] [62
这不是我想要的。我希望它回归:
61
62
我做错了什么,我该如何解决?
答案 0 :(得分:0)
使用preg_match_all()
并使用\d+
获取数字:
preg_match_all('/\[Image\]\[(\d+)\]/', $text, $matches);
或者,您可以匹配NOT ]
,因此([^\]]+)
。
然后循环$matches[1]
以回声等...
foreach($matches[1] as $headerTitle) {
print($headerTitle);
}
不需要substr_count()
或任何其他内容。