ホームページ > バックエンド開発 > PHPの問題 > phpはhtmlのテキストコンテンツを置き換えることができますか?

phpはhtmlのテキストコンテンツを置き換えることができますか?

藏色散人
リリース: 2023-03-12 18:30:01
オリジナル
1953 人が閲覧しました

php は html のテキスト コンテンツを置換できます。置換方法は次のとおりです: 1. "preg_match_all($pattern,htmlspecialchars_decode($a)...);" メソッドで置換; 2. preg_replace_callback で置換方法。

phpはhtmlのテキストコンテンツを置き換えることができますか?

#この記事の動作環境: Windows7 システム、PHP7.1、Dell G3 コンピューター。

php は html のテキストコンテンツを置き換えることができますか?

#php は html

# のコンテンツを置き換えます。次の html

## 部分は既知です。 #

$a="<p><img src=\"/upload/store/1/ue/image/1568282125833264.png\" title=\"1568282125833264.png\" alt=\"1.png\"/><img src=\"http://dimg04.c-ctrip.com/images/300q12000000rq2t956CB.jpg\" alt=\"undefined\"/><img src=\"https://dimg04.c-ctrip.com/images/300m12000000sdsca92E2.jpg\"/><img src=\"https://dimg04.c-ctrip.com/images/300w12000000rutmrD6CB.jpg\" alt=\"undefined\"/><img src=\"https://dimg04.c-ctrip.com/images/300u12000000rorex415F.jpg\" alt=\"undefined\"/><img src=\"http://dimg04.c-ctrip.com/images/300k12000000rsyxgBA05.jpg\" alt=\"undefined\"/></p>"
ログイン後にコピー
http、https、およびローカル相対パスを含む URL があります


一般的な使用法:

$pattern="/<img.*?src=[\&#39;|\"](.*?)[\&#39;|\"].*?[\/]?>/";
preg_match_all($pattern,htmlspecialchars_decode($a),$match);
if(!empty($match[1])){
    print_r($match[1]);
}else{
echo "没得";
}
ログイン後にコピー
最初にループ内のすべてに一致します $match[ 1]

ループ後 foreach($match[1] as $val){preg_replace('#src="'.$val.'"/#is', 'src="aaaaa/ ',$a );}

これはかなり面倒だと思います

アップグレードの使用方法:

$host="http://mp.csdn.net"
$newContent =  preg_replace_callback("/<img.*?src=[\&#39;|\"](.*?)[\&#39;|\"].*?[\/]?>/", function($m) use($host){

   if(strpos($m[1],&#39;http://&#39;) || strpos($m[1],&#39;https://&#39;)){
       return $m[0];
   }else{
       $img=preg_replace(&#39;#src="/#is&#39;, &#39;src="&#39;.$host.&#39;/&#39;,$m[0]);
       return $img;
   }
}, $a);
ログイン後にコピー
この方法はほとんど使用されませんが、 、バッチ処理です 効果は非常に良いです!

個人的にはこの種のクロージャ関数が好きです。コードは非常に読みやすいです。

推奨学習: "

PHP ビデオ チュートリアル

>>

以上がphpはhtmlのテキストコンテンツを置き換えることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート