我每月比较一次从网站抓取的数据。这次我得到了错误:
file_get_contents failed to open stream: Operation not permitted
该错误引发于上个月抓取的文件,而不是当前的抓取文件。因此,在下面的代码中,$currfile
有效,而$basefile
无效。具体代码为:
$basepath = $destination_directory . "/" . 'website' . "/" . $basedir . "/" . $brand . ".txt";
$currpath = $destination_directory . "/" . 'website' . "/" . $currdir . "/" . $brand . ".txt";
$basefile = utf8_encode(file_get_contents($basepath));
$currfile = utf8_encode(file_get_contents($currpath));
$response["website"] = [
"basefile" => $basefile,
"currfile" => $currfile
];
... // passes info to client to be compared with javascript
我检查了文件权限是否正常,并且两者具有相同的权限。作为Mac,我选择了文件,然后“获取信息”。
我还检查了PHP ini是否可以:
allow_url_fopen: On
我对scandir
确实有同样的问题,所以我也检查了PHP open_basedir: no value
。
我唯一能想到的与上个月相比发生的变化是我安装了Mac OS Catalina,但遇到了许多问题。可能这只是另一个。
顺便说一下,这是PHP 7.2.1。
还有其他想法吗?