2011-05-24 124 views

回答

5

你可以建立一個函數將笑臉轉換爲HTML圖像。像:

function parseSmiley($text){ 
    // Smiley to image 
    $smileys = array(
     ';)' => 'blink.png', 
     ':-|' => 'scare.png', 
     ':-(' => 'bad.png' 
    ); 

    // Now you need find and replace 
    foreach($smileys as $smiley => $img){ 
     $text = str_replace( 
      $smiley, 
      "<img src='smiley/path/{$img}' />", 
      $text 
     ); 
    } 

    // Now only return it 
    return $text; 
} 

現在運行:

echo parseSmiley('Hello you ;)'); 
+0

大家好,我的問題是文字笑臉是動態的,所以在哪裏調用這個函數? – Sudantha 2011-05-24 06:11:44

+0

您需要獲取需要解析的字符串。例如,如果來自form/POST,你可以執行'echo parseSmiley($ _ POST ['comment']);' – 2011-05-24 06:26:56

+1

你是什麼意思動態的?當用戶在表單中輸入內容時,他希望他立即看到笑臉?然後,您必須使用javascript來編寫客戶端腳本。 – 2011-05-24 06:57:30

6

像這樣的東西應該工作:

$smileys = array(
    ':)' => 'smile.gif', 
    ':(' => 'sad.gif', 
    ':D' => 'happy.gif' 
); 

$ks = array(); 
$vs = array(); 

foreach($smileys as $k => $v){ 
    $ks[] = $k; 
    $vs[] = '<img src="' . $v . '" alt="' . $k . '" />'; 
} 

str_replace($ks, $vs, $output); // presuming that you have the whole page output in $output 
1

一個非常簡單的方法來做到這一點,是由<img>標籤更換笑臉

function smileyText($content) { 
    $smiley = array(':)', ':(' ...); 
    $graph = array('<img src="..."/>', '<img src="..."/>', ...); 

    return str_replace($smiley, $graph, $content); 
}