- 533 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 18:57:26.81 ID:ZFc7oTWj0.net]
- function fetchUrlList($url)
{ static $urlList = array(); if (isset($urlList[$url])) { return $urlList; } $html = file_get_contents($url); $urlList[$url] = ''; if (preg_match_all('/=\s*[\'\"]\s*(https?\:\/\/' . parse_url($url, PHP_URL_HOST) . '[\w\-\.\!~\*\'\(\);\/\?\:@&\=\+\$,%]+\.html?)\s*[\'\"]/i', $html, $matchs)) { foreach ($matchs[1] as $match) { if (!isset($urlList[$match])) { fetchUrlList($match); } } } return $urlList; } 5分程で超適当に書いてほとんど検証してない糞ソースでも良ければ 再帰は12行目のところね 2chの仕様上仕方なくインデントを全角空白にしてるから注意(他へソースを載せるのすら面倒w) 一度取得したURLを再取得しない程度で負荷には全く配慮してないので自己責任で 処理の流れさえ分かれば良いと思ったから、正規表現(超適当だからこれも直してw)の部分見れば分かる通り 相対パスは無視して末尾.htmか.htmlしか取ってない 相対パスまで処理する時は正規表現書き換えて相対パスをURLに変換する処理を自分で書いて ソースより↑の説明書く方が時間かかったかもw
|

|