2011-05-24 56 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); 
}