2016-06-17 4 views
0

PHPでは、本文の中のすべてのURLを一致させるにはどのような方法が推奨されますか(つまり、$ _POST textareaという形式はどういう意味ですか?テキスト内のURLを一致させる方法

私は、スーパースタンダードに準拠したキャッチオールではなく、大部分のURLに一致するメソッドを探しています。私が一致するよう例:

理想的には、結果は連想配列になります。

私はparse_urlがあまり適切ではないことを理解します。正規表現を使用すると問題が発生すると聞いています。しかし、私はfilter_varに重大な問題があると聞いてきました。少なくとも、スキームが必要であるということではありません。あなたはどのテクニックを使っていますか?

はあなたのケースでは、あなたに

+0

役立つ正規表現は、そのために適切である必要があります願っています。しかし、「google.com」は多くの誤認を招く可能性があります。有効なTLDのリストとの照合を検討する必要があります。 –

答えて

0

をありがとう、私は複数のregexsに対してテストすることは進むべき道であると思うだろう。ここで

は、www.google.comと一致する必要があり、いくつかの例regexsです:

  • /^google[.]com/
  • /^http:\/\/www[.]google[.]com/
0

それは、テキスト内のすべての上記のURLを抽出します。

<?php 

$string='http://www.google.com?q=1000 
http://google.com?xlkd=0 
www.google.com?asdfsdf=asdf 
google.com?234324'; 


preg_match_all('#\b(?:http(?:s)?:\/\/)?(?:www\.)??[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match); 

echo "<pre>"; 
print_r($match); 

出力は次のようになります。

Array 
(
    [0] => Array 
     (
      [0] => http://www.google.com?q=1000 
      [1] => http://google.com?xlkd=0 
      [2] => www.google.com?asdfsdf=asdf 
      [3] => google.com?234324 
     ) 

    [1] => Array 
     (
      [0] => 0 
      [1] => 0 
      [2] => f 
      [3] => 4 
     ) 

) 

それは

+0

ありがとう、これは良いスタートですが、これも非URLテキストと一致するようです。 – Bogdan

関連する問題