XHTML1.0に準拠してwebサイトを作成したとした場合。
javascriptなど仕様上、外部読み込みにしなければなりません。

現在モバイルSEOのテスト用にDocomoのDOCTYPE宣言を入れたxhtmlのページを泳がせているんですが、
ログを見ていたらクローラーの中でこんなやつがいました。

  • IP: 209.191.126.182
  • HOST: cr06.wap.search.mud.yahoo.com
  • UA: lwp-trivial/1.41

HOSTからしてどうやらYahooのモバイルクローラー?(wapってあるし。でも情報が少ないからなんとも)
しかしUAが違うしなあ...と思って調べていたら、
このUAはperlがページを取得した時に残されるもの(LWP::Simple)とのこと。
mixiのRSS fetcherも以前はこれだったとか、そうでないとか。

とにかくこのクローラー、ひたすらrobots.txtとサイトマップをセットで拾っていきます。
Whois見ても本物のYahooの様なので、ちょい様子見で。

よくあるPHPコード
fopenを使って1行目だけ抜き取る場合はこれで良い。
ただ、ポインタ?なので処理的に重そう。

$fp= fopen("text.xml", "r");
$lines = fgets($fp);
fclose($fp);

そこでこれ、これでX行目だけ抜き出せる。

$hoge = file("text.xml");
print "$hoge[ X ]"

XHTML1.0文章をPHPにしてサーバにアップしたら、HTML自体が表示されませんでした。
文章型宣言を抜いたら表示されました。

---------------これが文章型宣言-----------------

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

------------------------------------------------

しゅうゆうこと

ページの先頭に戻る