-2

サンプルコードhtmlがあります:

$text = '<img src="abc.jpg" alt="abc" /> abc def ghi abc xyz';
echo str_replace('abc', 'has replace', $text);

エコー結果がタグにある場合、' 'を''に<img/>置き換えます=>エラーabchas replace

結果を実行する方法は次のとおりです。

<img src="abc.jpg" alt="abc" /> has replace def ghi has replace xyz
4

1 に答える 1

1

私にはアイデアがあります:

$k=0;
$arr = array();
$regex = '/(<img.*?\/>)/ism';
if(preg_match_all($regex, $text, $tmp)) {
   if(isset($tmp[0])) {             
      for($i = 0;$i < count($tmp[0]); $i++) {
         $arr[0][$k] = $tmp[0][$i];
         $arr[1][$k] = md5($tmp[0][$i]);
         $text = str_replace($arr[0][$k], $arr[1][$k], $text);
         $k++;
      }
   }
}

そして、あなたは置き換えることができます:

echo str_replace('abc', 'has replace', $text); 

結果は次のようになります。$text= '74d3ae3af91872413da1db45d88ddd4a abc def ghi abc xyz'; //imgはmd5になりました

最終的にできること:

for($i = 0;$i < $k; $i++) {
    $text   = str_replace($arr[1][$i], $arr[0][$i], $text);
}

あなたが成功することを願っています

于 2012-05-16T05:06:11.023 に答える