[PHP] リンク自動取得スクリプトを作成する

2006年10月29日 日曜日 23時10分
E-Mail This Post/Page Print This Post/Page

phpを使ってさまざまな便利ことができるが、PHPのマニュアルのユーザーノートの欄にmax99x氏が投稿している内容もそのひとつだ。

これはハイパーリンクのURLを自動取得するスクリプトで、使い勝手によってはもっと違った使い道に応用することもできるだろう。ここでは単に指定したURLのリンクをリストさせてみる。 

まず、$url lに取得したいページのアドレスを当てはめる。例えば、$url = ‘http://www.google.com’; とする。次にget_links()カスタム関数に $url を代入しマッチしたURLを配列に収めていく。 そして、x_array_merge()関数 でマッチの統合処理をする。その後は foreach() 関数で配列の内容をリストアップしていく、という流れになる。

<?php
$url = 'http://www.google.com';
$m = get_links($url);
$links = x_array_merge($m[3],x_array_merge($m[5],$m[8]));
 
foreach ( $links as $geturls ){
echo "<a href=". $geturls . " target='_blank'>" . $geturls ."</a><br>";
}
 
function get_links($url) {
   if( !($body = @file_get_contents($url)) ) return FALSE;
   //Pattern building across multiple lines to avoid page distortion.
   $pattern  = "/((@import\s+[\"'`]([\w:?=@&\/#._;-]+)[\"'`];)|";
   $pattern .= "(:\s*url\s*\([\s\"'`]*([\w:?=@&\/#._;-]+)";
   $pattern .= "([\s\"'`]*\))|<[^>]*\s+(src|href|url)\=[\s\"'`]*";
   $pattern .= "([\w:?=@&\/#._;-]+)[\s\"'`]*[^>]*>))/i";
   //End pattern building.
   preg_match_all ($pattern, $body, $matches);
   return (is_array($matches)) ? $matches:FALSE;
}
 
function x_array_merge($arr1,$arr2) {
   for($i=0;$i<count($arr1);$i++) {
       $arr[$i]=($arr1[$i] == '')?$arr2[$i]:$arr1[$i];
   }
   return $arr;
}
?>

–追記–
こちらにスクリプトを追加しました。

参考URL: http://us2.php.net/manual/en/f…….php#58505

この記事に関連する NEWS

この記事に関連するトピック

このエントリーへの Yahoogle Suggestions

Trackback this Post |

 

記事ヒット TOP 10

IT 関連 NEWS

    There is no entries available for this category.

PHP関連 NEWS

    There is no entries available for this category.

PHP Tips from Social Bookmarks

    There is no entries available for this category.

PHPに関するフォーラムトピック

    There is no entries available for this category.

Tag Cloud

admin Admin Drop Menus Admin Memo Admin Panel advanced drop menus array unique blog cron dabeya Dagon Design Sitemap Generator dropcap Edit N Place error Feedburner game google hack html HTML CSS Internet NEWS Permalink Redirect PHP phpBB2 plugin RSS scripts search stattraq template the content Ultimate Tag Warrior Web Management Windows XP Wordpress WP Plugins WPページ  拡張子 カスタマイズ カスタム関数 カテゴリー コード セキュリティ タグ トップページ トラックバック フィード 投稿 抜粋 日本語 時刻 時間 正規表現 表示 記事

サイト メニュー

Blogtimes image
ぱそずき :D)‐く © 2008
Close
E-mail It