使用程序替换字符串中的子字符串而不使用str_replace
应该是通用函数应该适用于以下示例:
Word:Hello world 替换字:llo 替换为:zz 输出应该是:Hezz world
Word:Hello world 替换字:o 替换为:xx 输出应为:Hellxx wxxrld
这是我写的解决方法
function stringreplace($str, $stringtoreplace, $stringreplaceby){
$i=0;$add='';
while($str[$i] != ''){
$add .= $str[$i];
$j=0;$m=$i;$l=$i;$check=0;
if($str[$i] == $stringtoreplace[$j]){
while($stringtoreplace[$j] != ''){
if($str[$m] == $stringtoreplace[$j]){
$check++;
}
$j++;$m++;
}
if($check == strlen($stringtoreplace)){
$n=0;$sub='';
for($n=0;$n<=strlen($stringtoreplace);$n++){
$str[$l] = '';
$sub .= $str[$l];
$l++;
}
$add .= $stringreplaceby;
$i += $check;
}
}
$i++;
}//echo $add;exit;
return $add;
}
我将输出作为helzzworld。 请看看我做错了什么,或者你有更好的解决方案,请建议。
答案 0 :(得分:0)
在不使用var someVar = someFunction('url-to-the-json');
的情况下尝试这个最简单的,我们正在使用str_replace
和explode
以及implode
。
1。
substr_count
用于计算和检查子串的存在。2。
substr_count
用于在匹配的子字符串的基础上将字符串扩展到数组中。3。
explode
将字符串与替换字符串连接。
implode
解决方案2:
Try this code snippet here <?php
ini_set('display_errors', 1);
$string="Hello world";
echo strReplace($string,"llo","zz");
echo strReplace($string,"o","xx");
function strReplace($string,$toReplace,$replacement)
{
if(substr_count($string, $toReplace))
{
$array=explode($toReplace,$string);
return implode($replacement, $array);
}
}
not best, but working
答案 1 :(得分:0)
你可以通过将主字符串分解为数组然后将你的stringreplaceby内爆到你的数组部分来创建新的字符串
<?php
function stringreplce($str,$strreplace,$strreplaceby){
$str_array=explode($strreplace,$str);
$newstr=implode($strreplaceby,$str_array);
return $newstr;
}
echo stringreplce("Hello World","llo","zz")."<br>";
echo stringreplce("Hello World","Hel","zz")."<br>";
echo stringreplce("Hello World"," Wo","zz")."<br>";
echo stringreplce("Hello World","rl","zz")."<br>";
echo stringreplce("Hello World","ld","zz")."<br>";
?>
答案 2 :(得分:0)
function ganti_kata($kata,$kata_awal,$kata_ganti){
$i =0; $hasil;
$panjang = strlen($kata);
while ($i < $panjang) {
if ($kata[$i] == $kata_awal) {
$hasil[$i] = $kata_ganti;
echo $hasil[$i];
}
else if ($kata[$i] !== $kata_awal){
$hasil[$i] = $kata[$i];
echo $hasil[$i];
}
$i++;
}
}
echo ganti_kata('Riowaldy Indrawan','a','x');
此代码使用php