2ちゃんねるでURLを含むレスを抽出
2chを見ていて、雑談が多い場所だと新しい情報が貼られたときに見逃してしまうことが多い
なのでURLが入っているレスだけ抽出できればいいなぁと
そんなツールをPHPで作ってみました
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>2ちゃんねるURL抽出</title></head> <body> <form action="index.php" method="post"> スレッドURL: <input type="text" size="80" name="URL"/> <input type="submit" name="submit" value="GO!"/> </form><hr> <?php //URLが入力されたら表示開始 if($_POST['submit']){ $URL=$_POST['URL']; //URLをパースする $URL_arr=parse_url($URL); //板名取得のためにパースする $board=split("/",$URL_arr['path']); //read.cgiの場所から板名を取得 $i=0; foreach($board as $read){ //echo $read."<br>"; if($read==="read.cgi"){ $board_pos=$i; } $i++; } //2ch以外のBBSに対応するため if($board_pos!=2){ for($j=1;$j<($board_pos-1);$j++){ $URL_arr['host'].="/".$board[$j]; } } //$board_posが板名の場所 $board_pos++; //.datファイルの位置を捜す $dat_URL="http://".$URL_arr['host']."/".$board[$board_pos]."/dat/".$board[$board_pos+1].".dat"; //ファイルオープン $fp = fopen($dat_URL, "r"); //エラー処理 if($fp===FALSE){ echo $URL."<br>"; echo $dat_URL."<br>"; echo "そんなスレありません・・・<br>"; } //レス番カウンタ $res_count=0; //datファイル解析 while ($line = fgets($fp)) { $res_count++; //datファイルを"<>"でパースする $output=split("<>",$line); //>>1のときだけスレッド名取得 if($res_count===1){ echo "<b>".$output[4]."</b><br>"; echo "<a href=\"".$URL."\" target=\"_blank\">".$URL."</a><br><hr>"; } //「://」で引っかかるレスを抽出 if(preg_match("/:\/\//",$output[3])){ //レス番指定を修正 $output[3]=str_replace("../test","http://".$URL_arr['host']."/test",$output[3]); //URLを抽出してリンクを張る $word=ext_url($output[3]); //表示 echo "<b>".$res_count."</b> <font size=\"2\" color=\"forestgreen\"><b>".$output[0]."</b></font>"; echo " <font size=\"2\" color=\"808080\">".$output[2]."</font><br>".$word."<br><hr>"; } } //while END fclose($fp); } //参考http://www.tokujyuu-japan.com/phpBlaz/lesson/regex/php_regex_operation.html function ext_url($str){ // ttp://やtp://をhttp://に直す $str=preg_replace("/h?t?tp:\/\//i"," http://",$str); $pattern='/ (https?(:\/\/[-_.!~*\'()a-z0-9;\/?:\@&=+\$,%#]+)) /i'; $replacement='<a href="\1" target="_blank">\1</a>'; // http://にリンクを張る $output=preg_replace($pattern,$replacement,$str); return $output; } ?> <p>Copyright 2010 <a href="http://d.hatena.ne.jp/t-kado/" target="_blank">t-kado</a> All rights reserved.</p> </body> </html>
スレのURLを入れれば、URLを含むレスを抽出してくれます。
2ch以外にもlivebays.net,パー速、モータースポーツ実況板、ニコニコ動画質問&交流掲示板等の
外部の2ch系掲示板に対応しています。
最近はActionScript,PHP,JavaScript,VBAとC言語に全然触ってないなぁ
Androidのネイティブコードには興味があるので、少しずつ触っていこう