1

共有ホスティングを使用しており、次の機能が無効になっています。

file_uploads = Off
allow_url_fopen = Off
allow_url_include = Off

ホスティングを変更することができず、いくつかの回避策を見つける必要があります。ホスティング会社も、これらの機能を有効にすることができない/有効にするつもりはありません。

例: コンテンツを取得するために、別のサーバーから 1 つのサーバーを呼び出しています。そのため、インクルードを行いますが、URL ファイルのインクルードが無効になっているため、その 2 番目のサーバーでコンテンツを取得し、何らかのキャッシュを使用してそこに保存するために必要なオプションがわかりません。

コンテンツサーバーを完全に(専用に)制御しているため、問題に対する簡単な解決策があるかどうかはわかりませんが、必要なことは何でもできます.

4

4 に答える 4

1

リモート コンテンツを取得しようとしている場合、curl ( php.net/curl )などを使用して自分でコンテンツを取得する機能を記述するのが最も簡単な方法です。

于 2008-11-24T06:31:21.557 に答える
0

サーバーがどの程度ロックされているかによって異なります。与えられた例 (curl 関数または fsockopen を使用) は、あなたが言及した制限によって妨げられるべきではありません。

于 2008-11-24T09:12:06.477 に答える
0

次のようなことを試しましたか: http://www.humanumbrella.com/2007/12/08/how-to-download-a-remote-file-in-php-and-then-save-it/

于 2008-11-24T06:51:47.883 に答える
0

このような問題を解決できます

a)専用サーバーに任意のファイルを取得するメカニズムを作成します(さらに、ある種のキーベースの認証と、ファイルを取得できるパスの制限)

例: get_file?path=/path/to/file&key=security_key という URL

b) ローカル ファイルからのようにこれを取得する関数を作成します。

function fetch_file($path) {
    $ch = curl_init("http://www.example.com/get_file?path=$path&key=security_key");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

次に、返された文字列を評価できます。これは、ファイルを含めるようなものです

eval fetch_file($path);

PHP ファイルのアップロードが妨げられた場合にサーバーに書き込む別の解決策は、ファイルをサーバーに ftp し、ファイルを含めることです。

于 2013-10-23T23:18:28.990 に答える