• ベストアンサー

【PHP】絶対パスで読み込みたいのですが・・・。

いつもお世話になっています。 現在PHPでページを作っているのですが、 ./index.php?h=index.html といったようにindex.phpファイル上に同じ階層にあるファイルを読み込んでいます。 ここに他のサーバーにおいてあるファイル(例:http://www.goo.ne.jp/sample.html)を読み込むことは可能なのでしょうか? それともやはり同一階層・ドメイン内にあるものしか読み込めないのでしょうか? 分かりにくい質問で申し訳御座いません。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

蛇足ですがurlはきちんとエンコードしてパラメータ渡ししてください http://hoge/index.php?h=http%3A%2F%2Fwww.yahoo.co.jp <?PHP $url=$_GET["h"]; if(url_exists($url)) print htmlspecialchars(file_get_contents($url)); function url_exists($url){ $handle = @fopen($url, "r"); if ($handle === false) return false; fclose($handle); return true; } ?>

その他の回答 (2)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

php.iniの設定で、allow_url_fopen が有効であれば、http:// というurl表記でファイルをfopen()やfile()関数で取得出来ます。 http://php.s3.to/man/ref.filesystem.html#ini.allow-url-fopen セキュリティには十二分にご注意下さい。

参考URL:
http://php.s3.to/man/ref.filesystem.html#ini.allow-url-fopen
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 スキーマがhttpであれば一応可能ですが。 そのつくりは、ものすごく簡単に「ディレクトリトラバーサル(パストラバーサル)」という脆弱性を生みます。 基本的には「やめる」か、でなければ「よほど神経配って知識しっかり得て作る」ほうがよろしいかと思われます。