スレッド表示 | フラット表示〕 全トピック 920 件中 523 番目 次≫ ≪前

fsockopenを使ってGETの結果をファイル保存

created: 2004-11-21 17:28 | modified: 2004-11-21 19:54 | reply: 2

[1921] fsockopenを使ってGETの結果をファイル保存

user: イチリョー | created: 2004-11-21 17:28
こんにちは、いつもお世話になっています。

以下のコードでファイルへの保存を試みました。HTMLファイルや、内部でリダイレクトしていないphpスクリプトではうまく保存できましたが、別のページにリダイレクトしているスクリプトを所得しようとするとエラーが発生してしまいます。この例では、page1.phpからpage2.phpにリダイレクトしています。

$host = "www.hogehoge.co.jp";
$port = 80;
$fp = @fsockopen( $host, $port, $errno, $errmsg, 30 ) or die();
$r .= "GET /page1.php HTTP/1.1\r\n";
$r .= "Accept: image/gif, image/png, image/jpeg, */*\r\n";
$r .= "Accept-Encoding:gzip default\r\n";
$r .= "Connection: Keep-Alive\r\n";
$r .= "Host: $host\r\n";
$r .= "Referer: http://localhost/\r\n";
$r .= "User-Agent: Mozilla/4.0 (MyAgent)\r\n";
$r .= "\r\n";
fputs( $fp, $r );
$response = "";
while( true )
{
$read = fread( $fp, 4096 );
$response .= $read;
if( strlen( $read ) < 4096 )
{
break;
}
}

fclose( $fp );
$fp = @fopen( "temp.html", "w+" ) or die();
fwrite( $fp, $response );
fclose( $fp );

エラーメッセージは以下の通りです

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
0

メッセージに従い、以下の行をphp.iniのphpセクションに追加しましたが結果は同じでした。

[php]
setting session.bug_compat_42 = 1
session.bug_compat_warn = 0

ちなみに、register_globalsはOffです

この問題解決のために、どなたか情報をご存知でしたら、教えていただけないでしょうか
reply: 1922 返信 編集 削除

[1922] 訂正します

user: イチリョー | created: 2004-11-21 18:02
メッセージに従い、以下の行をphp.iniのphpセクションに追加しましたが結果は同じでした。

[php]
setting session.bug_compat_42 = 1
session.bug_compat_warn = 0

と書きましたが、誤りでした。エラーは消えましたが、レスポンスヘッダだけが保存され、実際にphpスクリプト(この場合、page2.php)で生成されるHTMLスクリプトが保存されない状況です
Parent: 1921  reply: 1923 返信 編集 削除

[1923] 自己レス

user: イチリョー | created: 2004-11-21 19:54
どうやら、serverからのreply情報をもとに再度requestしないといけないようです。
とりあえず、その方法でしのごうと思います
Parent: 1922  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 523 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑