Php 在从一个小部件移动到另一个插件之前,文件内容一直工作得很好
我成功地构建了一个WordPress小部件,当页面刷新时,它可以通过JSON文件中的URL下载.csv文件。小部件工作得很好;每次刷新页面时,都会从JSON中的URL下载.csv文件 现在,我从小部件中获取代码,并将其粘贴到插件中,该插件每天通过cron作业执行相同的操作。不幸的是,当由cron作业触发时,完全相同的代码现在无法工作 由于安全原因,我无法发布所有代码,下面是我遇到错误的摘录Php 在从一个小部件移动到另一个插件之前,文件内容一直工作得很好,php,json,wordpress,Php,Json,Wordpress,我成功地构建了一个WordPress小部件,当页面刷新时,它可以通过JSON文件中的URL下载.csv文件。小部件工作得很好;每次刷新页面时,都会从JSON中的URL下载.csv文件 现在,我从小部件中获取代码,并将其粘贴到插件中,该插件每天通过cron作业执行相同的操作。不幸的是,当由cron作业触发时,完全相同的代码现在无法工作 由于安全原因,我无法发布所有代码,下面是我遇到错误的摘录 /* ISOLATE CSV LINK PULLED FROM JSON */ $
/* ISOLATE CSV LINK PULLED FROM JSON */
$phpObj = json_decode($response);
if (json_last_error() !== 0) {
echo json_last_error_msg();
} else {
print_r($phpObj, true);
$csvURL = $phpObj->result->location;
}
/* DOWNLOAD CSV FILE */
$file_name = "filteredList" . $listLabelArray[$i] . ".csv";
$info = pathinfo($file_name);
if ($info["extension"] == "csv") {
if(file_put_contents( "wp-content/plugins/finder-autoupdate/" . $file_name,
file_get_contents($csvURL))) {
echo nl2br($file_name ." downloaded successfully!\n");
}
else {
echo "File download failed.";
}
}
else echo "Sorry, that's not a csv file";
以下是调试控制台:
10-Jun-2021 16:59:39 UTC] PHP Warning: file_put_contents(wp-content/plugins/finder-autoupdate /filteredListVA0002019921.csv):
failed to open stream: No such file or directory in /sites/[REDACTED].com/files/wp-
content/plugins/finder-autoupdate/finder-autoupdate.php on line 135
在研究了这个之后,调试控制台中列出的路径不应该包括finder-autoupdate.php吗,因为这是插件的php文件?路径应该只是将
filteredListVA0002019921.csv
放在文件夹/sites/[REDACTED].com/files/wp content/plugins/finder autoupdate/
中,通过插件“Advanced cron Manager”手动运行cron作业会导致该故障。当cron作业自动运行时,没有问题。解决了 您可以尝试使用WP\u CONTENT\u DIR而不是使用相对链接吗?如果它一直工作到你移动它,我要检查的第一件事是链接现在是否断开了。@JosephOdom谢谢你的回复!事实证明,只有在我使用插件“高级cron管理器”手动触发cron作业时,问题才会显现出来。我今天早上让cron作业自动运行,一切正常。服务器上是否存在文件wp content/plugins/finder autoupdate/filteredListVA0002019921.csv
?您意识到文件路径是相对于当前工作目录和/或当前脚本位置的,所以请检查这些values@Martin是的。我相信手动运行cron的插件在某种程度上破坏了下载,但只要我等待cron作业实际运行,现在一切都正常,这就是我希望插件如何工作的方式。