ホームページ  >  記事  >  バックエンド開発  >  サイズに適合するテキスト内の最初の画像のアドレスを取得します

サイズに適合するテキスト内の最初の画像のアドレスを取得します

WBOY
WBOYオリジナル
2016-06-13 11:55:54848ブラウズ

サイズ
を満たすテキスト内の最初の画像のアドレスを取得するには、preg_match_all を使用してすべての画像アドレスを取得し、要件を満たす画像が見つかるまで判定をループします。

でも、最初の写真を見つけたらすぐに判断したいのですが、一致しない場合は、2 番目の写真を見つけてからもう一度判断します。それともすべてのマッチをリサイクルしても大丈夫ですか?
------解決策---------


<br />preg_match<br />

------解決策---------preg_match 通常のマッチングは使えないのでしょうか?必要な画像に合わせて規則的なルールを作成できます。

------解決策---------記事のサムネイルを抽出してフィルタリングするのとよく似ています。 icon
preg_match_all 関数は、一致するすべての結果を直接返すようです。記事が長すぎる場合、または画像が多すぎる場合、パフォーマンスに大きな影響を与えます。
preg_match をループして、一致した記事の最初の部分を切り取るのはどうでしょうか。時間?ブレークポイントの位置をすばやく取得するにはどうすればよいですか?
preg_replace_callback を使用して実行できますか?コールバック関数がメインの呼び出し関数を終了する方法はありますか?
別の言い方をすると、あなたのテキストはユーザーによって収集または投稿されていますか?後者では、画像を添付ファイルとして保存し、データベースに保存して簡単に管理できます。ueditor を使用して、ソース コードを変更して

------解決策----------- を実現できます。 ------ -------preg_match_all
ループの結果を一度に取り出し、もしなら飛び出し(割り込みチェック)必要な

条件が満たされるまでループ内の preg_match または strstr を 1 つずつチェックします

どちらの効率も同じですが、preg_match には残りの文字列判定の問題があります

php 5.2 では、純粋な文字列関数を使用して文字ごとに識別できます。効率は正規表現を使用するよりも大幅に高くなります
php 5.3 以降の場合、この 2 つは同等の効率です。病気を隠して治療を避ける必要はありません

元の文字列でstrip_tagsを実行し、imgタグのみを保持することをお勧めします。これにより、処理が数倍速くなります


------解決策-------- ------------さらに、プログラムに後続のアクションがない場合(つまり、条件が満たされた場合に終了することができます)
その場合、preg_replace_callback があなたのニーズを最もよく満たします

------解決策--------- img タグを抽出するためにモデレーターが提案したstrip_tags は、まさに要点です
投稿者の発言 単一フィールドでの複数のデータの管理はカンマで区切られています。使用されるのは非常に限られた場合です。いいえ。率直に言うと、複数のデータがある場合は、便宜上、別のテーブルを作成する必要があります。
私は少し前に新人 CMS を書きました。 . 画像用に別のテーブルを作成し、それらを ajax にアップロードし、id と src を返しました。いくつかの記事フィールドとこれらの画像 ID を送信した後、画像テーブル内のこれらの画像の他のフィールドを変更し、現在の記事にバインドします。管理するのに非常に便利です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。