PHP プログラムで html ファイルからすべての URL を抽出する必要があります。HTML ファイル内のすべての URL を抽出する C# プログラムを作成していたとき、次の正規表現を使用しました。次に、先頭に「http」部分を追加して、完全な URL リストを取得します。次のコードで使用した正規表現を PHP で使用する方法を教えてください。
List<string> links = new List<string>();
Regex regEx;
Match matches;
regEx = new Regex("href=\"http\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))\"", RegexOptions.IgnoreCase | RegexOptions.Compiled);
for (matches = regEx.Match(downloadString); matches.Success; matches = matches.NextMatch())
{
links.Add("http" + matches.Groups[1].ToString());
} //Add all the URLs to a list and return the list
return links;
例を示していただければ幸いです。
@julian 詳細な説明をありがとうございました。コードを少し変更して、次のように使用しました。
$html = file_get_contents('http://mysmallwebpage.com/');
$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link)
{
$returnLink = $link->getAttribute('href');
echo "<br />",$returnLink;
}
しかし、結果には正確な URL アドレスが表示されません。次のようなものを出力します。
/nmsd-gallery/
/home/?currentPage=3
javascript:noop();
URLアドレスだけを取得する方法があれば教えてください。そのような:
http://mysmallwebpage.com/