php - PHP 警告:file_put_contents() 无法打开流:是目录
问题描述
我已经搜索和搜索,但找不到像我正在经历的例子,一切正常,但只是想摆脱这一位在我的日志中抛出的所有警告:
$propertyData = $propertyDetail->data;
$displayAddress = $propertyData->display_address;
if ( $displayAddress != "" ) {
file_put_contents( $this->tmpDirectory."/slugs/".sanitize_title( $displayAddress ), $propertyData->property_id );
}
$displayAddress 是从 API 调用中提取的,它返回并基于它创建必要的文件,截图https://share.getcloudapp.com/2Nuyklxd(正常工作)
然而,我的日志充满了这些:
PHP Warning: file_put_contents(/kunder/qzgb_2535/contem_4144/public/wp-real-estate-7/elementor-three-demo/wp-content/cache/idx_temp/slugs/): failed to open stream: Is a directory in /kunder/qzgb_2535/contem_4144/public/wp-real-estate-7/elementor-three-demo/wp-content/plugins/ct-idx-pro/classes/IDX.php on line 390
我意识到“无法打开流:是一个目录”这让我相信使用变量作为文件名存在问题,还是我遗漏了一些简单的东西?
感谢任何帮助或指导,谢谢!
解决方案
对于任何感兴趣的人,我通过删除正在工作但 file_put_contents() 不是 100% 喜欢输出的 sanatize_title() 函数来修复它,这是更新的:
$propertyData = $propertyDetail->data;
$displayAddress = $propertyData->display_address;
if ( $displayAddress != "") {
$displayAddress = strtolower($displayAddress);
$displayAddress = preg_replace("/[^a-z0-9_\s-]/", "", $displayAddress);
$displayAddress = preg_replace("/[\s-]+/", " ", $displayAddress);
$displayAddress = preg_replace("/[\s_]/", "-", $displayAddress);
file_put_contents( $this->tmpDirectory . "/slugs/" . $displayAddress, $propertyData->property_id );
}
推荐阅读
- c++ - 指针网格保持空间结构随对象数量的变化 C++
- javascript - 从登录屏幕重定向问题
- python-3.x - 将图像插入文本框时的 Tkinter image_create 性能
- owl - OWL:is-part-of 关系可以通过普遍限制来定义吗?
- r - 从R中的数据框创建成对值的方阵
- hadoop - 只能写入 1 minReplication 节点中的 0 个。有 0 个数据节点正在运行,并且在此操作中排除了 0 个节点
- node.js - 如何从现有的 nodejs 服务器提供 Angular 应用程序?
- reactjs - 如何在我的 redux 操作中模拟用户列表?
- r - 在 R 中做一个等效于 Excel 的 =PERCENTRANK.EXC 函数?
- java - 使 Swing 无边框窗口可拖动