2013-03-21 73 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