fopen不能使用与r php不同的东西

时间:2014-11-10 14:14:55

标签: php fopen

我的fopen函数和打开模式参数有问题。

代码

function writeOnFile($url, $text)
{
    $fp = fopen($url, "r");
    echo "<br>read: ".fgets($fp);
    //fwrite($fp, $text);
    fclose($fp);
}

如果我使用&#34; r&#34;作为开放模式,回声线工作...但如果我为任何其他人改变这个参数(使用相同的url文件)它停止工作,只看到&#34;读:&#34;没有别的。 我试过&#34; w +&#34; &#34; R +&#34; &#34; a +&#34; ...但没有人工作 我想读的是一个txt文件,我更改了文件的权限,现在是777 ...

我做错了什么?

1 个答案:

答案 0 :(得分:3)

根据您的变量命名,$url表明您正在尝试写入http://example.com/...。这是不可能的。你不能“写”到网址,因为PHP绝对没有想法远程服务器期望的协议。例如。 PHP的一些奇迹决定让这个URL通过,并使用http POST ...但服务器期待一个http PUT。哎呀,这是行不通的。

同样,永远不要假设对外部资源的操作成功。总是假设失败,并将成功视为一个惊喜:

function writeOnFile($url, $text)
   if (!is_writeable($url)) {
      die("$url is not writeable");
   }
   $fp = fopen($url, "w");
   if (!$fp) {
      die("Unable to open $url for writing");
   }
   etc...
}