我的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 ...
我做错了什么?
答案 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...
}