我有这段代码:
$text = '[iframe=200x200]http://stackoverflow.com[iframe] ';
$text = preg_replace(
'/\[iframe=(.*?)x(.*?)\](.*?)\[\/iframe\]/ms',
'<iframe style="border: 1px solid rgb(204, 204, 204); width: \1px; height: \2px;" src="\3"></iframe>',
$text
);
echo $text;
为什么不起作用?
答案 0 :(得分:2)
尝试:
$text = preg_replace('/\[iframe=(.*?)x(.*?)\](.*?)\[iframe\]/ms',
'<iframe style="border: 1px solid rgb(204, 204, 204); width: \1px; height: \2px;" src="\3"></iframe>',
$text);
\[\/iframe\]
中有一些不需要的斜杠需要更改为\[iframe\]
修改强>
实际上您的输入字符串看起来不正确,因为它没有关闭iframe标记:
$text = '[iframe=200x200]http://stackoverflow.com[iframe] ';
应该是
$text = '[iframe=200x200]http://stackoverflow.com[/iframe] ';
如果您的字符串包含/
,您可以使用其他分隔符来避免在字符串中找到/
。类似的东西:
$text = preg_replace('#\[iframe=(.*?)x(.*?)\](.*?)\[/iframe\]#ms',
'<iframe style="border: 1px solid rgb(204, 204, 204); width: \1px; height: \2px;" src="\3"></iframe>',
$text);
答案 1 :(得分:2)
您的输入字符串有错误。结束标记处的/
缺失
[IFRAME = 200×200] http://stackoverflow.com[/iframe]