2
$url="http://www.source.com/top";
$destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");
echo "dest=$destination<br>";
echo "url=$url<br>";
$source=fopen($url,"r");
$maxsize=5000000000;
$length=0;
while (($a=fread($source,1024))&&($length<$maxsize))
{
$tmpfile=$tmpfile . $a;
$length=$length+1024;

}        
    fwrite($destination,$tmpfile);
fclose($source);
fclose($destination);

上記のPHPソースは、私の共有ホスティングアカウントの魅力のように機能します。ただし、専用のLinuxCentosマシンでファイルを書き込めません。このCentosマシンでは、ソース$ urlは正常に読み取ることができますが、次の行は次のとおりです。

     $destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");

Linuxボックスにファイルを書き込めません。Linuxのrootユーザー(php file-name.phpなど)で上記のコードを実行してみましたが、ファイルを作成できましたが、ソースファイルを読み取ることができませんでした:

     $destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");

403エラーが発生します。私はこのLinuxCentosマシンで何が起こっているのか非常に混乱しています。以前にこのCentosボックスに投稿したように、同じページの送信の間にセッション変数が空になるという問題があります。どんな助けでも大歓迎です。

4

1 に答える 1

4

なぜ単純にしないのですか?:

<?php 
error_reporting(E_ALL);/*Debug any permission problems*/
$url="http://www.source.com/top";
$temp="/var/www/vhosts/domain.com/httpdocs/temp/".date('m-d-Y').".tmp";

file_put_contents($temp,file_get_contents($url));
?>
于 2012-02-22T03:50:47.270 に答える