在我的數據庫中的許多職位有一些字符,如:如何更換一些文字,數字,字符
[媒體ID = 468寬度= 660 HEIGHT = 440]
用PHP我想媒體ID (數字),並將其替換爲另一個函數,在獲取id後,不要[html] = [width = 660 height = 440]在我的帖子中顯示html。
請問能有人幫忙嗎? 非常感謝你
PS:我不需要高度和寬度。
在我的數據庫中的許多職位有一些字符,如:如何更換一些文字,數字,字符
[媒體ID = 468寬度= 660 HEIGHT = 440]
用PHP我想媒體ID (數字),並將其替換爲另一個函數,在獲取id後,不要[html] = [width = 660 height = 440]在我的帖子中顯示html。
請問能有人幫忙嗎? 非常感謝你
PS:我不需要高度和寬度。
您可以使用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,則返回相同的文本。這是一個相當簡單的示例,我相信您可以弄清楚如何調整行爲以適應您的需求。
謝謝,我會試試看。 – Meo
可以這樣做:如果短代碼存在後做你粘貼的東西,如果沒有不做任何事情。謝謝 – Meo
@Meo查看更新後的答案。 – NullUserException
你還需要寬度和高度嗎? – NullUserException
不,我只需要媒體編號,並不想要那個簡碼,在html中顯示 – Meo