本日,(たまたま)縦書き「清貧譚 (seihin.php)」にアクセスしたら,表示されなかった。
Apacheのerror.logを見たら,
file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0
が出ている。allow_url_fopen=Off のせいって,昨日のアップデート以前から「Off」だったジャンと思うんだが,PHP5.3.6にしたせいらしい。
仕方がないので,といってもallow_url_fopen=Onにするわけにはいかないので,代わりにcURLを使ってみることにする。
最新のcurl-7.21.4-devel-mingw32.zipを落としてきて,解凍。
http://www.php.net/manual/ja/curl.installation.phpによると,「libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。」ということなので,curl.exeとlibeay32.dllをC:PHPにコピーするともに,既に存在したssleay32.dllを最新版で上書きした。
php.iniのextensionでextension=php_curl.dllをアンコメント。
あと,清貧譚(seihin.php)の中のphpスクリプトをcURLで書き直す。こんな感じ。
<?php $url = "http://www.example.com/index.html"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_TIMEOUT_MS,5000); <---8/05追加 curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); $data = substr($data, 0, 100); $data = mb_convert_encoding($data, 'UTF-8', 'Shift_JIS'); echo $data; ?>
表示されるようになった。やれやれ。
追記(8/5):
A secure rewrite of timthumb.php as WordThumb (魚拓です) を読んでて気になったので,上記にcurl_setopt ($curl, CURLOPT_TIMEOUT_MS,5000);を追加。PHP5.2.3未満,cURL7.16.2未満だと,CURLOPT_TIMEOUTじゃないと使えないだろう。value の適切な設定値が分からないので一応5秒に設定。
This website uses cookies.