| <?
# mixi は euc-jp なので、一応あわせておきます。
# ソースコードは、後で正規表現使うので euc-jp で保存します
mb_language( "ja" );
mb_internal_encoding("EUC-JP");
$sock = fsockopen("mixi.jp", 80, $errno, $errstr, 30);
if (!$sock) {
die("$errstr ($errno)\n");
}
# GET コマンドの出力です
fwrite($sock, "GET http://mixi.jp/show_log.pl HTTP/1.0\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "Referer: http://mixi.jp/show_log.pl\r\n");
fwrite($sock, "Proxy-Connection: Keep-Alive\r\n");
fwrite($sock, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n");
fwrite($sock, "Host: mixi.jp\r\n");
fwrite($sock, "Cookie: 生きたクッキー\r\n");
fwrite($sock, "\r\n");
# 上記処理で既にレスポンスは PHP が取得しています。
# 仕様にあわせて、何も無い行までを取得します
$headers = "";
while ($str = trim(fgets($sock, 4096))) {
$headers .= "$str\n";
}
# HTML 部分の取得です。( euc-jp のデータです )
$body = "";
while (!feof($sock)) {
$body .= fgets($sock, 4096);
}
fclose($sock);
# このサンプルでは、足跡ページが表示される為、ユーザの ID や ハンドル名を伏せる処理です。
# $1 と $2 にそれぞれ ID と ハンドルが入ります。
# 日付と時間をさらに取得すれば、データーベース等に落とすデータが完成します
$pattern = '/show_friend.pl\?id=(\d+)">([^\n]+)<\/a>/';
$replacement = 'show_friend.pl?id=999999">謎</a>';
$body = preg_replace($pattern, $replacement, $body);
print $body;
?>
| |