笑脸图像 - 优化的PHP代码

时间:2011-04-11 14:45:51

标签: php

它是一个好的代码还是可以优化?

 $tempmsg = str_replace("[:)]","<img src='img/smiley0.png' title='Smile' height='100' width='100'>",$tempmsg);

3 个答案:

答案 0 :(得分:2)

1 /可以优化吗?

非常好,你没有使用正则表达式(preg_replace),所以不用担心。

2 /这是一个好的代码

对我来说,这不是真的可读。如果你需要更换其他表情怎么样?它不可重复使用。这是迈向更好的可读性,增加可重用性的第一步......可能有点慢,但在我需要优化之前,我倾向于支持可重用性而不是性能。

function replace_smiley($text) {
  $replacements = array( 
     ":)" => "image1.jpg", 
     ":(" => "image2.jpg"
  );

  $out = $text;
  foreach ($replacements as $code => $image) {
    $html = '<img src="img/' . $image . ' alt="' . $code . '" height="100" width="100" />';
    $out = str_replace($code, $html, $out);
  }
  return $out;
}

当然,根据要求,总有改进的余地。

答案 1 :(得分:1)

如何优化?通过一行代码优化事物很难。我建议将笑脸添加为ALT文本,对于那些没有图像功能或图像由于某种原因无法传输的人。但这不是“优化”。那简直就是好设计。

 $tempmsg = str_replace(blah blah blah .... alt=":)" ...);

答案 2 :(得分:1)

这就是我构建它的方式:

function replace_smiley($text){
    $replacements = array(
        ':)' => 'image1.jpg',
        ':(' => 'image2.jpg'
    );

    $search = array();
    $replace = array();

    foreach($replacements as $key => $val){
        $search[] = $key;
        $replace[] = '<img src="images/' . $val . '" alt="' . $key . '" />';
    }

    return str_replace($search, $replace, $text);
}

它高效,易于维护,可能尽可能优化。