【PHP】下らねぇ質問はここに書き込みやがれ 8at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 8 - 暇つぶし2ch533:デフォルトの名無しさん
17/08/23 18:57:26.81 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


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch