我正在制作一个Web应用程序,该应用程序使用cUrl从互联网上抓取一个页面并相应地更新另一个页面。我一直在通过从 cUrl 保存 HTML 然后在另一页上解析它来做到这一点。问题是:我无法弄清楚应该对文本文件使用什么权限。我没有把它保存在我的/public/html 文件夹中,因为我不希望网站的任何用户能够看到它。 我只希望他们能够看到它在网站上的解析方式。
这是 cUrl 代码:
$perfidlist = "" ;
$sourcefile = "../templates/textfilefromsite.txt";
$trackerfile = "../templates/trackerfile.txt";
//CURL REQUEST 1 OF 2
$ch = curl_init("http://www.website.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
<more cUrl options omitted>
ob_start();
$curl2 = curl_exec($ch);
ob_end_clean();
curl_close($ch);
//WRITING FILES
$out = fopen($sourcefile, "r");
$oldfiletext = fread($out, filesize($sourcefile));
fclose($out);
$runcode = 1 ;
以及我保存文本文件的部分:
/*only writing a file if the site has changed*/
if (strcmp($oldfiletext, $curl2) !==0)
{
$out = fopen($sourcefile, "w");
fwrite($out, $curl2);
fclose($out);
$tracker = fopen($trackerfile, "a+");
fwrite($tracker, date('Y/m/d H:i:s')."'n");
fclose($tracker);
$runcode = 1 ;
}
我在最后一个"$out = fopen($sourcefile,"w");"部分收到错误,上面写着:
Warning: fopen(../templates/textfilefromsite.txt): failed to open stream: Permission denied in /usr/share/nginx/templates/homedir.php on line 72
有什么想法吗?
问题出在文件/文件夹权限上。我最终将文件的权限更改为"666",意思是"-rw-rw-rw-"并且它起作用了。