这篇文章给大家介绍的内容是关于php根据不同的条件替换一段html代码中的不同的img标签,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、需求
这次的需求是获取到一段html代码,这段代码里面含有多个img标签。需求就是先获取到这些img标签的src属性,然后进行业务编写。业务编写之后,把新的src内容分别替换到不同的img标签中。
这部分逻辑听起来很简单,但实际操作还是有点难度,下面说一下解题过程。
二、实现过程
1、获取到一段html代码中所有img标签的src属性
preg_match_all('/<img src="/static/imghwm/default1.png" data-src="([^" class="lazy" [^ alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >]*?]*?)"[^>]*?>/i',$content,$match); $srcArr = $match[1];
这里是利用正则匹配,$content
是我们要提取的html代码,$match
是获取到的数组。大家可以打印一下,$srcArr
就是获取到的所有src属性的数组。这里可以通过循环来处理我们的逻辑。
2、当处理完逻辑之后,我们需要再把处理后的src分别赋值给每个img标签
$rules = '#<img src="/static/imghwm/default1.png" data-src="([^" class="lazy" (.+?)]+?)"([^ alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >]*?)>#'; preg_replace($rules,"<img $1src=\"$base64\"$3 alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >",$content);
这里还是使用正则匹配,但是如果按这种方式匹配的话,我们会把所有的img标签的src属性替换成$base64
,这显然不是我们想要的结果。
3、最终方案
//申明正则匹配规则 $rules = '#<img src="/static/imghwm/default1.png" data-src="([^" class="lazy" (.+?)]+?)"([^ alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >]*?)>#'; //这里是循环,通过循环来匹配相应的img标签 for($i=0;$i<$count;$i++) { //关键就是这个preg_replace_callback函数,它比着传统的正则替换,多了一个callback函数,可以让我们写自己的逻辑,use()里面是我们需要用到的参数 $newContent = preg_replace_callback('#<img src="/static/imghwm/default1.png" data-src="([^" class="lazy" (.+?)]+?)"([^ alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >]*?)>#', function($m) use($id,$i,$base64){ //var_dump($m[0]); 此处的$m[0]代表匹配到的第一个图片地址 //这里的$this->is_replace是我自己的一个函数,属于判断条件 if($this->is_replace($m[$i],$id,$i)) { //如果符合的话,就替换为$base64[$i] return "<img src=\"$base64[$i]\" alt="PHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法" >"; }else { //如果条件不符合,就不替换 return $m[0]; } }, $content);
这个函数真的挺强大的,让我们可以在正则匹配中加入自己的逻辑,很赞。
相关文章推荐:
以上がPHPのさまざまな条件に基づいてHTMLコードのimgタグを置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
