在我的数据库中,许多帖子都有一些字符:
[media id=468 width=660 height=440]与php我想获得媒体id(数字),并将其替换为另一个函数,也采取id后,不希望[媒体id=468宽度=660高度=440]显示在我的帖子在html。
请问有人能帮帮忙吗?非常感谢我不需要高度和宽度
您可以使用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,这只会给你返回相同的文本。这是一个相当简单的例子,我相信您可以弄清楚如何调整行为以满足您的需求。