PHPコーディング

fopenでインターネット上のファイル内容を取得できない時

2018年12月14日
PHPのfopen関数は、ファイル名にURLを指定するとURLの内容を取得できます。
ところが、セキュリティ設定が厳しいレンタルサーバーではこの機能がオフになっていることがあります。外部の悪意あるファイルを読み込まないとも限らないからです。

ネットビジネス便利ツール】が販売しているツールではユーザー様に対するお知らせをこちらのサーバーにアップロード、ユーザー様がインストールなさったツールからfopen関数でお知らせを取得して表示しています。
バージョンアップのお知らせや大切な事をお知らせするのに使っています。メールでもお送りしますが、アドレスが変わった場合でも見られるようにしています。
もちろん悪さはしません。ファイル内容もただのテキストでソースコードは一切ないファイルです。まあ本当に悪さをしようと思ったら、お知らせなんかよりツール内部に入れるよね普通。

ツールの機能に直接影響するわけではありませんが、やはりきちんと取得できた方がいいので改善しました。


fopen関数でURLが取得できない場合は、【allow_url_fopen】が【Off】になっています。php.iniで変更できます。

allow_url_fopen = On

以前はソースからも変更できたようです。
不特定多数に配るツールなので、php.iniを変更してもらう説明は面倒です。fopen関数の代わりにcURL関数を使うことにしました。

$strNewsURL = お知らせのURL
$objCH = curl_init();
curl_setopt($objCH, CURLOPT_URL, $strNewsURL);
curl_setopt($objCH, CURLOPT_RETURNTRANSFER, true);
$strNews = curl_exec($objCH);
curl_close($objCH);


他にも少々修正を加えて、【PayPalオートメール】のバージョンアップをしました。