如何替换一些单词,数字,字符


How to replace some words,numbers,characters

在我的数据库中,许多帖子都有一些字符:

[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,这只会给你返回相同的文本。这是一个相当简单的例子,我相信您可以弄清楚如何调整行为以满足您的需求。