萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP如何實現獲取網絡上的文件?

PHP如何實現獲取網絡上的文件?

 PHP可以獲取網絡上的文件嗎?PHP如何實現獲取網絡上的文件?請看實例代碼:
<!-- generateindex.php --> 
<?php 
//設置我們將要使用的文件 
$srcurl = "http://localhost/index.php"; 
$tempfilename = "tempindex.html"; 
$targetfilename = "index.html"; 
?> 
<HTML> 
<HEAD> 
<TITLE> 
Generating <?php echo("$targetfilename"); ?> 
</TITLE> 
</HEAD> 
<BODY> 
<P>Generating <?php echo("$targetfilename"); ?>...</P> 
<?php 
//首先刪除上次操作可能遺留下來的臨時文件。 
//這個過程可能會提示錯誤,所以我們使用@以防止報錯。 
@unlink($tempfilename); 
//通過一個URL的請求裝入動態版本。 
//在我們接收到相關內容之前,Web服務器會對PHP進行處理 
//(因為本質上我們是在模擬一個Web浏覽器), 
//所以我們將獲得的是一個靜態的HTML頁面。 
//'r'指出我們只要求對這個“文件”進行讀操作。 
$dynpage = fopen($srcurl, 'r'); 
//處理錯誤 
if (!$dynpage) { 
echo("<P>Unable to load $srcurl. Static page ". 
"update aborted!</P>"); 
exit(); 

//將這個URL的內容讀入到一個PHP變量中。 
//指定我們將讀取1MB的數據(超過這個數據量一般是意味著出錯了)。 
$htmldata = fread($dynpage, 1024*1024); 
//當我們完成工作後,關閉到源“文件”的連接。 
fclose($dynpage); 
//打開臨時文件(同時在這個過程中建立)以用來寫入(注意'w'的用法). 
$tempfile = fopen($tempfilename, 'w'); 
//處理錯誤 
if (!$tempfile) { 
echo("<P>Unable to open temporary file ". 
"($tempfilename) for writing. Static page ". 
"update aborted!</P>"); 
exit(); 

//將靜態頁面的數據寫入到臨時文件中 
fwrite($tempfile, $htmldata); 
//完成寫入後,關閉臨時文件。 
fclose($tempfile); 
//如果到了這裡,我們應該已經成功地寫好了一個臨時文件, 
//現在我們可以用它來覆蓋原來的靜態頁面了。 
$ok = copy($tempfilename, $targetfilename); 
//最後刪除這個臨時文件。 

copyright © 萬盛學電腦網 all rights reserved