私はここで見つけた次のphpコードを持っています:
function download_xml()
{
$url = 'http://tv.sygko.net/tv.xml';
$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
echo("curl_exec was succesful"); //This never gets called
curl_close($ch);
return $data;
}
$my_file = 'tvdata.xml';
$handle = fopen($my_file, 'w');
$data = download_xml();
fwrite($handle, $data);
私がやろうとしているのは、指定されたURLでxmlをダウンロードし、それをディスクに保存することです。echo
ただし、約80%が終了すると停止し、通話後に通話に到達することはありませんcurl_exec
。理由はわかりませんが、メモリが不足しているためだと思います。したがって、ダウンロードするたびに、たとえば4kbのファイルにcurlにデータを書き込ませることができるかどうかを尋ねたいと思います。これが不可能な場合、phpを使用してダウンロードしてディスクに保存されたURLに保存されているxmlファイルを取得する方法を知っている人はいますか?
ベンさん、どうもありがとうございました。
編集:これは現在のコードですが、機能しません。データをファイルに書き込みますが、それでもドキュメントの約80%にすぎません。たぶんそれはメモリを超えているからではなく、他の理由ですか?URLからディスクにファイルをコピーするのがこれほど難しいとは本当に信じられません...
<?
$url = 'http://tv.sygko.net/tv.xml';
$my_file = fopen('tvdata.xml', 'w');
$ch = curl_init($url);
$timeout = 300;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $my_file);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 4096);
curl_exec($ch) OR die("Error in curl_exec()");
echo("got to after curl exec");
fclose($my_file);
curl_close($ch);
?>