3

phpを使用して、オンラインで保存されている.csvファイル(www.website.com/data/my_file.csv)からデータを取得しようとしています。ローカルホストでコードをテストしている間(xamppを使用)、すべてがうまく機能しますが、ファイルをオンラインサーバーに移動すると機能しません。私がしていることは:

$filesize=2000;
$handle = fopen("www.website.com/data/my_file.csv", "r") or die ('cannot open the file');
$raw = fread($handle, $filesize);
fclose($handle);

これにより、「ファイルを開くことができません」と表示されます。ローカルホストから同じコードを試してみると、うまくいきます。さらに、私はこれを別の方法で試しました:

$filesize=2000;
$handle = fopen("my_file.csv", "r") or die ('cannot open the file');
$raw = fread($handle, $filesize);
fclose($handle);

これは実際には機能しますが、問題は.csvファイルを完全なURLから開く/読み取る必要があることです。私が見落としているものはありますか、それともこれは間違ったやり方ですか?

4

3 に答える 3

2

ある種の共有ホスティングアカウントを使用していますか?これらの場所の多くは、allow_url_fopenディレクティブを無効にすることによるリモート呼び出しを許可していません。

ファイルの先頭でこれを実行してみてください。

<?php
   ini_set("allow_url_fopen", 1);
于 2012-06-23T12:57:18.163 に答える
1

セキュリティ上の問題である可能性があります。file_get_contentsを使用しようとします。

$csv = file_get_contents("www.website.com/data/my_file.csv");
// limit maximum length
$csv = file_get_contents("www.website.com/data/my_file.csv", false, null, 0, $filesize);

file_get_contents()は、ファイルの内容を文字列に読み込むための推奨される方法です。OSでサポートされている場合は、メモリマッピング技術を使用してパフォーマンスを向上させます。

于 2012-06-23T12:57:14.357 に答える
0

それが有効になっfopen('http://www.website.com/data/my_file.csv','r')ていることを確認してから使用してください。allow_url_fopen

于 2012-06-23T12:56:01.757 に答える