2013-03-21 96 views
0

我知道這是一個重複的問題,但我已經嘗試了一切。Fopen沒有創建新文件

因此,這裏是我的代碼:

<?php 
    $link = $_GET['link']; 
    $urlparse = parse_url($link); 
    $filename = $urlparse['host'] . ".txt"; 
    $dlink = "../get/" . $filename; 
    if(isset($link)){ 
    $source = file_get_contents($link); 
    $file = fopen($dlink,"w"); 
    $string = htmlspecialchars($source); 
    fwrite($string,$file); 
    fclose($file); 
    chmod($dlink,0777); 
    } 
?> 

**我刪除代碼

同樣的一些不必要的部分,我已經檢查在php.ini中允許的fopen,我已檢查PHP文件的權限。 會發生什麼情況是代碼在沒有警告或錯誤的情況下運行,但它不會創建新的文本文件。

+0

檢查以確保您的文件路徑正確。 – Jordan 2013-03-21 21:44:39

+1

代碼在如此多的層次上是錯誤的 - 首先,isset($ link)'將始終爲真,因爲您將它設置在第一行(空字符串也是一個值!)。您沒有檢查權限,或者文件確實打開(取決於PHP設置,您可能不會收到上述任何錯誤/警告)。執行所有這些,你會看到相關的錯誤。 – hexblot 2013-03-21 21:45:42

+0

根據文檔tphp會嘗試創建它。在你想要文件的目錄上檢查你的權限。 – Daniel 2013-03-21 21:46:04

回答

0

好吧,如果FWRITE不拋出任何錯誤,並沒有創建文件,幾乎所有的肯定你有「配置錯誤」在php.ini的error_reporting指令:

這種嘗試,你應該開始讓你的警告和錯誤:

error_reporting = E_ALL & ~E_NOTICE