0

 $Content = preg_replace($regex, $replace, $Content);

preg_replace のアクション前後の $content の差を変数に設定するにはどうすればよいですか?

編集

私の場合、 $content は文字列であり、次のようになります

    <span style="color: #888888;"><img class="wp-image-3164 alignleft" style="color: #333333; margin: 5px;" alt="Modif 2" src="http://blablabla" width="200" height="132" />Rejoignez-nous en<strong> Egypte</strong> et découvrez une des mers les plus chaudes au monde, avec une <strong>visibilité remarquable</strong> et une grande variété d'espèces aquatiques endémiques. Safaga (port Egyptien) ouvert sur la Mer Rouge, situé à 45 minutes de l’aéroport d’Hurghada, est réputé pour son atmosphère non polluée, ses dunes de sable noir et sa <strong>tranquillité</strong>.</span>

正規表現はそこからいくつかの画像を削除します

4

3 に答える 3

1

preg_replace_callbackpreg_replace 2 番目のパラメータで関数を使用できます。その関数で、見つかった一致を処理できるようになりました。

$removed_imgs = array();
$content = '<span style="color: #888888;"><img class="wp-image-3164 alignleft" style="color: #333333; margin: 5px;" alt="Modif 2" src="http://blablabla" width="200" height="132" />Rejoignez-nous en<strong> Egypte</strong> et découvrez une des mers les plus chaudes au monde, avec une <strong>visibilité remarquable</strong> et une grande variété d\'espèces aquatiques endémiques. Safaga (port Egyptien) ouvert sur la Mer Rouge, situé à 45 minutes de l’aéroport d’Hurghada, est réputé pour son atmosphère non polluée, ses dunes de sable noir et sa <strong>tranquillité</strong>.</span>';
$content = preg_replace_callback('#(<img.+? />)#',function($r) {
    global $removed_imgs;
    $removed_imgs[] = $r[1];
    return '';
},$content);
//Can now loop through all $removed_imgs

$removed_imgs指定された正規表現に一致するものはすべて元の文字列から削除されますが、配列にも追加されます。

于 2013-09-26T11:16:47.300 に答える
1

preg_match_allpreg_replace の前に使用できます。このようなもの:

preg_match_all($regex,$Content,$matches);
$Content = preg_replace($regex, $replace, $Content);
$diff = $matches;

$matches は配列です。

于 2013-09-26T11:05:22.460 に答える