2009-12-27 54 views
0

我想用PHP從數據庫中顯示它之前更改單詞:))到IMG興高采烈更換某些圖片我怎麼能做到這一點與某些詞

+0

http://www.hawkee.com/snippet/1834/ – miku

+0

@MYYN,該例子使用'ereg_'函數。 1)在這種情況下,我認爲沒有必要使用正則表達式,並且2)使用正則表達式時,建議在'ereg_'上選擇'preg_'系列,因爲後者已經被棄用或者很快就會被淘汰。 –

回答

3

一種解決方案是使用str_replace功能。

例如(使用「:-)」,這是我喜歡的不止你「:))」 - 唯一的味道^^你來用「正確的」的問題)

$str = "This is a sentence with a smiley :-)"; 

$new_str = str_replace(
    array(
     ':-)', 
    ), 
    array(
     '<img src="smiley.png" alt=":-)" />' 
    ), 
    $str 
); 

echo $new_str; 

會給你這個輸出:

This is a sentence with a smiley <img src="smiley.png" alt=":-)" /> 

即笑臉已被替換爲圖像。


請注意,我用了一個數組的第一個和第二個參數,調用str_replace時:如果你有其他的表情,你可以將它們添加到這兩個陣列(第一陣列是針對「搜索」字符串,第二個用於「替換」)

(我的意思是:不需要調用str_replace幾次:一次,使用數組,應該幾個替代足夠)


而且,作爲一個阿里納斯:我用原來的「 img標籤的alt屬性的笑臉文字「:這樣,如果圖片無法顯示,瀏覽器將顯示笑臉的文本版本 - 這總比沒有好。

+0

@帕斯卡爾馬丁:擊敗我吧。 – BenTheDesigner

+0

非常感謝我做過的那個人 –

+0

不客氣:-)玩得開心! –

1

您可以使用類似:

str_replace(':))', '<img src="path to your image" title="image title" />', $string); 

如果要替換多個「笑臉」,使用數組:

$find = array(
      ':)', 
      ':(' 
     ); 
$replace = array(
       '<img src="path to happy image" title="" />', 
       '<img src="path to sad image" title="" />'); 
      ); 
str_replace($find, $replace, $string); 
0

您可以使用類似下面的內容。爲每張圖片創建一個新的替代品。

$message = str_replace(":)", "<img src='happy.png' alt=':)'/>", $message); 
$message = str_replace(":(", "<img src='unhappy.png' alt=':('/>", $message); 

這將打開$message"I'm happy :)""I'm happy <img src='happy.png' alt=':)'/>"。當用戶看不到圖像時,alt標籤會顯示原始的笑臉。