2009-08-10 13 views
2

サーバー側インクルードを使用して、サーバー外にあるファイルにアクセスすることはできますか?サーバー側インクルード

これ以外のオプションは何ですか?

+0

ドライブ内のフォルダの外にあるtxtファイルの情報にアクセスしようとしています。そのファイルに情報をアップロードできるようにするには、サイトがなくてもウェブサイトに表示される可能性があります –

+0

うわー、私はSSIについて聞いていなかった。 –

答えて

1

PHPでこれを行うには、file_get_contents()やfopen()などの処理を行うことができます。

<?php 
    echo file_get_contents('http://www.example.com/include'); 
?> 
3

ドメイン外のデータを取得するには、cURLを使用します。受け取ったデータを実行したい場合は、eval()に進んでください。しかし、これがページの「出力」を得ることに注意してください。つまり、 '.php'ページのように実行されたページであれば、処理された結果として出てくるデータを取得します。

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 
?> 

同じあなたは、ファイルの「実際」の内容をつかむしたい場合は、あなたが他のサーバー上の種類のプロキシを設定したいと思うfile_get_contents()のために真である、とfopen()

。 (サーバー側スクリプトの仕組みのセキュリティ上の欠陥があるため、サーバー上で実行することはできません)。あなたが要求するすべてのファイルの内容を与える

<?php 

// Read the requested file out 
readfile($_GET['file']); 

は:誰がそれを見つけた場合

http://test.com/handler.php?file=handler.php

しかし、それは危険である可能性があります。

0

はい、nginxののサーバ側は任意の完全なURLなどを使用することができます含まれています

<!--# include virtual="http://www.stackoverflow.com/" --> 
1

をサーバーソフトウェアに言及していないが、私はSSIがmod_includeモジュールで提供されてApacheを、と仮定します。 には要素が含まれているため、リモートファイルは許可されません。ただし、execがあり、外部ツールを実行できます。それを使用してwgetまたは任意の他のコマンドを呼び出すことができます。

しかし、それほど複雑ではないかもしれません。リモートディレクトリをローカルシステムにマウントできる場合は、プレーンなシンボリックリンクを作成し、にはが含まれています。

すでに提案したように、PHPは本当に使いやすいです。