在我的数据库中,很多帖子都有一些字符,如:
[media id = 468 width = 660 height = 440]
使用php我想获取媒体ID(数字)并将其替换为另一个函数,同样在获取id之后,不要在我的帖子中显示[media id = 468 width = 660 height = 440] HTML
请帮助一下吗? 非常感谢你
PS:我不需要身高和宽度。
答案 0 :(得分:1)
您可以使用preg_replace_callback()
:
function do_stuff($values) {
return '<object id="' . $values['id'] . '" />';
}
$text = 'some stuff [media id=468 width=660 height=440] more stuff';
$new_text = preg_replace_callback('@\[media id=(?P<id>\S+) width=\S+ height=\S+\]@',
'do_stuff', $text);
echo "text: $text\n new text: $new_text";
会给你
text: some stuff [media id=468 width=660 height=440] more stuff
new text: some stuff <object id="468" /> more stuff
如果您更改了do_stuff()
回调:
function do_stuff($values) {
$allowed = array('468', '222');
if (in_array($values['id'], $allowed)) {
return '<object id="' . $values['id'] . '" />';
} else {
return $values[0];
}
}
如果id不是468或222,这将只返回相同的文本。这是一个相当简单的例子,我相信你可以弄清楚如何调整行为以满足你的需要。