Php 文本图像替换中的问题

Php 文本图像替换中的问题,php,html,string,replace,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.

我试图做一个文本替换,但由于有重复的字母,我不断得到我不想要的东西。有人知道我怎么做吗?

输入

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){
$img=ereg_替换(“a”、“”、$img);
$img=ereg_替换(“b”和“,$img”);
$img=ereg_替换(“c”、“”、$img);
返回$img;
} 
$img=“abc”;
回波图像($img);
输出

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> 
=r/a.png>=r/b.png>
我想要的输出

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> 

正确更换
“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); 
函数图像($img){
$img=ereg_替换(“abc”、“”、$img);
返回$img;
} 
$img=“abc”;
回波图像($img);

也被弃用了

试试这个,可能不够,但可以满足您的要求:

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);
函数图像($img){
$data=“”;
对于($i=0;$i),以下是我尝试的:-

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); 
函数图像($img){
对于($i=0;$i

在函数
image()
中,您不需要指定
$img

中包含的字母表。我想继续使用multiple语句,因为我稍后将添加整个字母表以创建类似徽标生成器的东西。尝试使用str_replace()或preg_replace(),谢谢我发现它很有用!