- phpからhttp通信でファイルを開くにはallow_url_fopenが必須だが使いたくないという要求
- simplexml_load_file使いたくない
- magpie使いたくない
<?php
//allow_url_fopenを使わずにrssを読む
require_once "HTTP/Request.php";
$AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$URL = "http://www.hoge.jp/blog/feed";
$rq =new HTTP_Request($URL);
$rq->setHttpVer("1.1");
$rq->addHeader('User-Agent', $AGENT);
$rq->sendRequest();
$rss = $rq->getResponseBody();
$pos[0] = mb_strpos($rss, '<item>' );
$pos[1] = mb_strpos($rss, '<title>' ,$pos[0] );
$pos[2] = mb_strpos($rss, '</title>' ,$pos[1] );
$pos[3] = mb_strpos($rss, '<link>' ,$pos[2] );
$pos[4] = mb_strpos($rss, '</link>' ,$pos[3] );
$pos[5] = mb_strpos($rss, '<item>' ,$pos[4] );
$pos[6] = mb_strpos($rss, '<title>' ,$pos[5] );
$pos[7] = mb_strpos($rss, '</title>' ,$pos[6] );
$pos[8] = mb_strpos($rss, '<link>' ,$pos[7] );
$pos[9] = mb_strpos($rss, '</link>' ,$pos[8] );
$pos[10] = mb_strpos($rss, '<item>' ,$pos[9] );
$pos[11] = mb_strpos($rss, '<title>' ,$pos[10] );
$pos[12] = mb_strpos($rss, '</title>' ,$pos[11] );
$pos[13] = mb_strpos($rss, '<link>' ,$pos[12] );
$pos[14] = mb_strpos($rss, '</link>' ,$pos[13] );
$title[0] = mb_substr($rss, $pos[1]+7, $pos[2]-$pos[1]-7 );
$link[0] = mb_substr($rss, $pos[3]+6, $pos[4]-$pos[3]-6 );
$title[1] = mb_substr($rss, $pos[6]+7, $pos[7]-$pos[6]-7 );
$link[1] = mb_substr($rss, $pos[8]+6, $pos[9]-$pos[8]-6 );
$title[2] = mb_substr($rss, $pos[11]+7, $pos[12]-$pos[11]-7 );
$link[2] = mb_substr($rss, $pos[13]+6, $pos[14]-$pos[13]-6 );
print <<<EOF
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>feedread</title>
</head>
<body>
<a href="$link[0]">$title[0]</a><br />
<a href="$link[1]">$title[1]</a><br />
<a href="$link[2]">$title[2]</a><br />
</body>
</html>
EOF;
exit;
?>