这是我写的代码
<?php
$response = file_get_contents('like.json');
$arr =json_decode($response);
foreach($arr->likes->data as $category){
$findme = $category->name;
$search = 'Lets play Cricket today, what do you say about playing Bangladesh cricket CHI?';
$pos2 = stripos($search, $findme);
if ($pos2 !== false) {
$search = str_ireplace ( $findme , '<b>'.$findme.'</b>' , $search );
echo $search;
}
}
?>
这里,我在$ category-&gt;名称中得到字符串数组 孟加拉国,板球,CHI,体育...... 现在在我的$ search字符串中我有一个小段落,我想替换$ category-&gt; name数组中匹配的任何单词。但问题是,如果它被多次替换,那么它会多次打印出来。
我不知道如何解决它,应该很容易,但不能正确。
答案 0 :(得分:3)
在循环外声明并输出变量$search
。:
$response = file_get_contents('like.json');
$arr =json_decode($response);
$search = 'Lets play Cricket today, what do you say about playing Bangladesh cricket CHI?';
foreach($arr->likes->data as $category){
$findme = $category->name;
$pos2 = stripos($search, $findme);
if ($pos2 !== false) {
$search = str_ireplace ( $findme , '<b>'.$findme.'</b>' , $search );
}
}
echo $search;
答案 1 :(得分:2)
如果要替换搜索字符串中的所有类别名称,请先替换它们,然后以这种方式回显搜索字符串:
$response = file_get_contents('like.json');
$arr =json_decode($response);
$search = "Lets play Cricket today, what do"
." you say about playing Bangladesh cricket CHI?";
foreach($arr->likes->data as $category){
$findme = $category->name;
$pos2 = stripos($search, $findme);
if ($pos2 !== false) {
$search = str_ireplace ( $findme , '<b>'.$findme.'</b>' , $search );
}
}
echo $search;