ホームページ > バックエンド開発 > PHPチュートリアル > phpは正規表現を使用して文字列内のURLを取得します

phpは正規表現を使用して文字列内のURLを取得します

高洛峰
リリース: 2023-03-05 08:34:01
オリジナル
1669 人が閲覧しました

今日、質疑応答システムを作成してオンラインにアクセスしたところ、多くの人がリンクを投稿していることがわかりました。ビジネス部門から、Web サイトのアドレスをフィルタリングするよう求められたので、文字列 URL アドレスを抽出する関数を共有します。次のように:

$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考';
 preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2);
print_r($array2);
ログイン後にコピー

実行結果:

(
  [0] => Array
    (
      [0] => http://www.manongjc.com
    )
)
ログイン後にコピー

ここでは preg_match_all 関数が主に使用されます。 この関数の具体的な使用法は次のとおりです:

preg_match_all - グローバル正規表現マッチングを実行します

構文:

int preg_match_all ( string pattern, string subject, array matches [, int flags] )
ログイン後にコピー

pattern で指定されたすべてのパターンを件名で検索します。 正規表現はコンテンツと一致し、結果をフラグで指定された順序で一致させます。
最初の一致を検索した後、それ以降の検索は前の一致の終わりから開始されます。

PREG_PATTERN_ORDER と PREG_SET_ORDER には特別な注意を払ってください

フラグには、次のフラグを組み合わせることができます (PREG_PATTERN_ORDER と PREG_SET_ORDER を一緒に使用しても意味がないことに注意してください):

$matches になるように結果を並べ替えるために PREG_PATTERN_ORDER

を使用する場合[0] はすべてのパターンの配列に一致します。$matches[1] は、最初の括弧内のサブパターンと一致する文字列で構成される配列です。以下同様です。 (つまり、$matches[0] [0] はすべてのパターン一致の 2 番目の項目、$matches[0] [1] はすべてのパターン一致の 2 番目の項目、$matches[1] [0] は次の一致です各項目。括弧内の最初の項目 $matches[1] [0] は、各括弧内の 2 番目の項目と一致します)

<?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
/* http://www.manongjc.com/article/1591.html */
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
?>
ログイン後にコピー

出力結果:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test
ログイン後にコピー

詳細 PHP は正規表現を使用して文字列内の URL を取得します。記事をご覧になる際は、PHP 中国語 Web サイトにご注意ください。


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