Skip to content

Instantly share code, notes, and snippets.

@niku
Created August 21, 2008 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save niku/6579 to your computer and use it in GitHub Desktop.
Save niku/6579 to your computer and use it in GitHub Desktop.
<?php
$url = 'http://menu.2ch.net/bbsmenu.html'; //元になるメニュー
$ext_filename = 'link.dat'; //追加サイトを書いたファイル名
$char_code = '<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">'; //文字コード指定(Shift_JIS)
$org_data = file_get_contents($url); //オリジナルデータ読み込み
mb_convert_variables("SJIS","auto",$org_data); //SJISに変換
//ヘッダー部分+<BODY>タグまで切り取り -> $head_dataに格納
//ヘッダー部分に文字コードを追加
$head_end_str = mb_strrpos($org_data,'<a href=http://www.bb-chat.tv/>');
$head_data = mb_substr($org_data,0,$head_end_str);
$head_data = str_replace("<HEAD>","<HEAD>\n".$char_code,$head_data);
//メニュー本体部分切り取り -> $main_dataに格納
$main_start_str = mb_strpos($org_data,'<BR><BR><B>');
$main_end_str = mb_strrpos($org_data,'</font>')-$main_start_str;
$main_data = mb_substr($org_data,$main_start_str,$main_end_str);
//ヘッダー部分書き出し
print($head_data."\n");
if(is_file($ext_filename)){ //外部ファイルがあるなら
$group_flag=1;
$fp=fopen($ext_filename,'r');
//外部ファイル追加分書き出し
while($line=fgetcsv($fp,1024,"\t")){
//文字コードをSJISに
mb_convert_variables("SJIS","auto",$line);
//HTMLタグをエスケープ
foreach($line as $part) $part=htmlspecialchars($part);
if($group_flag==1){ //グループ名
print("<BR><BR><B>$line[0]</B><BR>\n");
$group_flag=0;
$linefeed_flag=0;
}else{
if($line[0]!=""){ //行が空白で無いなら板名
if ($linefeed_flag==1) print("<br>\n"); //前の行がグループ名でなかったら改行
print("<A HREF=$line[1]>$line[0]</A>");
$linefeed_flag=1;
}else{ //行が空白なら次の1行はグループ名
print("\n\n");
$group_flag=1;
}
}
}
print("\n\n"); //ソースファイル整形用。特に無くてもいい。
}
//メニュー本体部分書き出し
print($main_data."\n");
//一応タグを閉じておく
print("</BODY></HTML>");
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment