1

これが私が書いたコードです

<?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;               
                }       
        }

?>

ここでは、バングラデシュ、クリケット、CHI、スポーツなどの$ category->nameの文字列の配列を取得しています。$search文字列には、たとえば小さな段落があります。 $category->name配列。しかし問題は、それが複数の置換を取得した場合、それが何度も印刷されることです。

私はそれを解決する方法がわかりません、簡単なはずですが、それを正しくすることはできません。

4

2 に答える 2

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;
于 2013-03-25T07:35:19.390 に答える
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;               
于 2013-03-25T07:35:16.237 に答える