2011-08-31 58 views
0

在我的數據庫中的許多職位有一些字符,如:如何更換一些文字,數字,字符

[媒體ID = 468寬度= 660 HEIGHT = 440]

用PHP我想媒體ID (數字),並將其替換爲另一個函數,在獲取id後,不要[html] = [width = 660 height = 440]在我的帖子中顯示html。

請問能有人幫忙嗎? 非常感謝你

PS:我不需要高度和寬度。

+0

你還需要寬度和高度嗎? – NullUserException

+0

不,我只需要媒體編號,並不想要那個簡碼,在html中顯示 – Meo

回答

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,則返回相同的文本。這是一個相當簡單的示例,我相信您可以弄清楚如何調整行爲以適應您的需求。

+0

謝謝,我會試試看。 – Meo

+0

可以這樣做:如果短代碼存在後做你粘貼的東西,如果沒有不做任何事情。謝謝 – Meo

+1

@Meo查看更新後的答案。 – NullUserException

相關問題