1

Google の結果からURLを取得しようとしていましたが、Google API では最初の 100 件を超える結果を取得することはできないため、Google のコンテンツをコピーしてファイルに貼り付け、preg_match_all を使用して結果を取得することを考えました。残念ながら、私は正規表現が苦手です。

誰かがこれで私を助けることができますか? 主な問題は、リンクに「http://」がないことです。

$body="PHP – Wikipedia, wolna encyklopedia
        pl.wikipedia.org/wiki/PHP‎
        PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu ...
        Możliwości - Historia - Moduły - Składnia
        PHP: Hypertext Preprocessor
        php.net/‎Tłumaczenie strony
        Server-side HTML embedded scripting language. It provides web developers with a full suite of tools for building dynamic websites: native APIs to Apache and ...
        Downloads - Documentation - A simple tutorial - News Archive - 2012
        PHP: Downloads
        php.net/downloads.php‎Tłumaczenie strony
        Binaries for other systems. We do not distribute UNIX/Linux binaries. Most Linux distributions come with PHP these days, so if you do not want to compile your ...
        PHP Tutorial - W3Schools
        www.w3schools.com/php/‎Tłumaczenie strony
        Provides basic to advanced PHP functions. Users can also learn how to integrate PHP with other languages such as MYSQL, AJAX, and XML.
        Kurs PHP
        phpkurs.pl/‎
        Kurs programowania w języku PHP. Kurs ten ma za zadanie zaznajomić osobę kompletnie nieobeznaną z tym językiem na tyle, aby sama była w stanie napisać ...
        Podstawy - Operacje na plikach - Ciągi znakowe (stringi) - Tablice";
    preg_match_all('/^(www\.)?[a-z0-9_\-]+.[a-z]+$/', $body, $match);

print_r($match);

結果:

 Array ( [0] => Array ( ) [1] => Array ( ) )

直してもらえますか?

4

1 に答える 1

0

これは、ほとんどの基本的な URL パターンに一致し、URL の末尾を受け入れます。入力例でテストしましたが、希望どおりに動作するようです。

preg_match_all('/((?:(?!-)[a-z\d-]+[^-]\.)+[a-z]{2,6}.*)/', $body, $match)
于 2013-05-04T14:51:25.917 に答える