我正在尝试制作文本替换器,但由于有重复的字母,我不断得到我不想要的东西。有谁知道我怎么做到这一点?
输入
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>
答案 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
中包含的字母