文本替换中的问题

时间:2014-06-17 06:45:08

标签: php html string replace

我正在尝试制作文本替换器,但由于有重复的字母,我不断得到我不想要的东西。有谁知道我怎么做到这一点?

输入     

function image($img) { 
      $img = ereg_replace("a","<img src=r/a.png>", $img); 
      $img = ereg_replace("b","<img src=r/b.png>", $img); 
      $img = ereg_replace("c","<img src=r/c.png>", $img); 
      return $img; 
} 

 $img = "abc"; 
 echo image($img); 

输出

<img sr<img src=r/c.png>=r/a.png><img sr<img src=r/c.png>=r/b.png><img src=r/c.png> 

我想要的输出

<img src=r/a.png><img src=r/b.png><img src=r/c.png> 

3 个答案:

答案 0 :(得分:1)

试试这个,可能不够,但它会满足你的要求:

function image($img) {
      $data=""; 

      for( $i = 0; $i <= strlen($img); $i++ ) {
        $char =substr( $img, $i, 1 );
        switch($char)
        {
            case 'a':
                 $data .="<img src=r/a.png>";
                 break;
            case 'b':
                 $data .="<img src=r/b.png>";
                 break;
            case 'c':
                 $data .="<img src=r/c.png>";
                 break;
            default:
            break;
        }
      }
      return $data; 
} 

 $img = "abc"; 
 echo image($img);

答案 1 :(得分:0)

问题"c" "a""b"正确替换,但当问题达到"c"时,"c"导致"src"原因"c"也被添加它取代了所有function image($img) { $img = ereg_replace("abc","<img src=r/a.png><img src=r/b.png><img src=r/c.png>", $img); return $img; } $img = "abc"; echo image($img);

尝试单一陈述

{{1}}

此外,ereg_replace()已被弃用

答案 2 :(得分:0)

这是我尝试过的: -

function image($img) { 
        for($i=0;$i < strlen($img);$i++){
            $letterarray[]=$img[$i];
        } 
        $a=0;
        foreach ( $letterarray as &$value) { // reference
           $value= str_replace($value, "<img src=r/$value.png>", $value);
            $a++;
            $ab[] = $value;
        }
      return implode("",$ab);
} 

 $img = "abc"; 
 echo image($img); 

在函数image()中,您不需要指定$img中包含的字母