Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!

告知欄です


■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50
メモ3

320 :名無しさん@勉強中 ★:07/12/09 12:50:02 ID:???
繰り返しになりますが
他言語では判りませんが(したらばはperlかな)
phpでは出来なくもないかなと。
少なくとも「原理的に無理」という事は無いと思うです。


差分取得の場合、
・If-Modified-SincenリクエストによるLast-Modified(ファイルの更新時間)取得
・ステータスコードの戻り値(更新ならHTTP/1.1 206 Partial Contentだったかな)
・Range: bytes

を見ているように思えるので
そのようにヘッダを返してやるだけで良いと思うです。
phpのheader命令に適切な値を入れれば良さそう。
詳しくは下記

header
http://php.s3.to/man/function.header.html


>>317のスクリプトソースでいうと

header("Content-Type:text/plain");

に続いて
例えば

header("HTTP/1.1 206 Partial Content");
header("Last-Modified: Sat, 08 Dec 2005 14:25:19 GMT");
header("Content-Length: 3378");

とやれば(したらばdatのように)静的ファイルのようなレスポンスを返せそうですし
従って差分取得も可能になるのではないかと。

試しにやってみましたが
書いた通りのヘッダやステータスを返してますね。

http://mirror.s206.xrea.com/x/htmltodat/test.php


ソースは下記
スレッドのタイトルを取得するテストに使ったものの再利用ですが。

<?php
$url = "http://cn2ch.cn/bbs/test/read.cgi/cn2ch/1169813975/";
$source_array = file($url);
$source = join("", $source_array);
eregi("<title.*>(.*)</title>", $source, $title);
header("HTTP/1.1 206 Partial Content");
header("Last-Modified: Sat, 08 Dec 2005 14:25:19 GMT");
header("Content-Length: 3378");
echo $title[1];
php?>

500KB
続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail(省略可)

0ch BBS 2006-02-27