amazonプラグインで http_request() を使って画像ファイルを取り込もうとしたところ、Linux のディストリビューションによっては不完全になります(たぶんテキストになっている)。
皆さんの環境ではどうですか?
<?php ///////////////////////////////////////////////// function plugin_zzz_inline() { $aryargs = func_get_args(); if ($aryargs[0] == 'proxy') $rc = http_request("http://images-jp.amazon.com/images/P/B00008WJ2I.09.MZZZZZZZ.jpg"); else $rc["data"] = amazon_getfile("http://images-jp.amazon.com/images/P/B00008WJ2I.09.MZZZZZZZ.jpg"); amazon_savefile(CACHE_DIR . "ZZZ.jpg", $rc["data"]); return "<a href='./cache/ZZZ.jpg'>image</a>"; } function amazon_savefile($file, $body) { $fp = fopen($file, "wb"); if (! $fp) return false; fwrite($fp, $body); fclose ($fp); return true; } function amazon_getfile($file) { $fp = fopen($file, "rb"); if (! $fp) return ''; $body = ''; while (!feof($fp)) $body .= fread($fp, 4096); fclose ($fp); return $body; } ?>
がダイジェストです。 これを zzz.inc.php としてプラグインに登録して試してもらえませんか。 呼び出しは
&zzz();
が http_request() を使わない場合、
&zzz(proxy);
が使う場合です。今までのところ、
環境 | proxy環境http_request使用 | proxy環境http_request不使用 |
Debian PHP4.1.2 | ? | ? |
Vine 2.6 PHP4.2.2 | ? | ? |
および
環境 | 一般環境http_request使用 | 一般環境http_request不使用 |
Debian PHP4.1.2 | ○ | ○ |
Vine 2.6 PHP4.2.2 | × | ○ |
のような感じです。 Debian は PukiWiki 1.4.2、Vine は PukiWiki 1.4rc4 というのによるのかもしれません。
$response .= fgets($fp,4096);が
$response .= fread($fp,4096);に変わってますから、これ以降でOKなんだと思います。 -- 2004-05-17 (月) 16:01:42