php file exists 失效,php file_exists无效解决办法

本文介绍了两种解决 PHP 中 file_exists 函数失效的方法。一种是通过 $_SERVER['DOCUMENT_ROOT'] 获取绝对路径,另一种是调整文件权限。

php file_exists无效解决办法

发布时间:2013-09-07 20:38:04      来源:51推一把

【摘要】方法1 : 据官方手册上描述若php教程的safe mode相关的设置过于苛刻,就会出现这样的情形:尽管文件真实存在也被误报,认为文件不存在。 由于服务器端的php.ini我们无法操纵,当用ini_set()也关闭不了safe mode模式,我们只有退而求其次,找一个更可靠、安全的检测方法

方法1 : 据官方手册上描述若php教程的safe mode相关的设置过于苛刻,就会出现这样的情形:尽管文件真实存在也被误报,认为文件不存在。

由于服务器端的php.ini我们无法操纵,当用ini_set()也关闭不了safe mode模式,我们只有退而求其次,找一个更可靠、安全的检测方法来检测文件是否存在。我们可以借助 $_server[document_root] 来加以实现。$_server[document_root] 返回的是网站的根目录,该目录的最后一个子目录不包含目录标志符号“/”,如:

d:/www/htdocs

有了根目录,再加上需要检测的文件的路径,我们将得到一个绝对的路径,php就可以顺利使用file_exists()函数对之进行检测。上述代码我们只需要更改第一行为(注意,我们在config.php之前加上了符号“/”):

$file=$_server[document_root]."/config.php";

如此,代码的执行就很可信,不会出现预期以外的结果。

以上方法同样适用于目录(is_dir())或文件(is_file())的相关检测函数,能够检测出被安全保护的目录或文件是否存在。

最后顺便提一下:这类被php特殊设置所保护的文件在引用(include和require)时不必加上$_server[document_root]路径,因为,根据php说明文档,它们是允许引用的。

方法2:本人的情况是因为文件在windows和linux之间来回的移动。造成linux下文件和目录的访问权限被改变,导致出文件除拥有者外其他均无访问权限。使用chmod -r 755 xxx/* 解决了问题。

huaxi@fd4bb9d5f3ca:/ge550v1/Iplatform/build$ make PRODUCT_NAME=ge550v1 iplatform_prep openssl support zlib cp: cannot remove '/ge550v1/Iplatform/build/../openwrt/package/libnfnetlink/patches/100-missing_include.patch': Permission denied copy patches done. make toolchain done. make[1]: Entering directory `/ge550v1/qca_95xx_12_2' Updating feed 'packages' from '../qca/feeds/packages' ... rm: cannot remove './feeds/packages': Permission denied ln: failed to create symbolic link './feeds/packages/packages': File exists failed. Updating feed 'networking' from '../qca/feeds/networking' ... rm: cannot remove './feeds/networking': Permission denied ln: failed to create symbolic link './feeds/networking/networking': File exists failed. Updating feed 'luci' from '../qca/feeds/luci' ... rm: cannot remove './feeds/luci': Permission denied ln: failed to create symbolic link './feeds/luci/luci': File exists failed. Updating feed 'routing' from '../qca/feeds/routing' ... rm: cannot remove './feeds/routing': Permission denied ln: failed to create symbolic link './feeds/routing/routing': File exists failed. Updating feed 'nss' from '../qca/feeds/nss' ... rm: cannot remove './feeds/nss': Permission denied ln: failed to create symbolic link './feeds/nss/nss': File exists failed. Updating feed 'nss_prop' from '../qca/feeds/nss-prop' ... rm: cannot remove './feeds/nss_prop': Permission denied ln: failed to create symbolic link './feeds/nss_prop/nss-prop': File exists failed. Updating feed 'nss_host' from '../qca/feeds/nss-host' ... rm: cannot remove './feeds/nss_host': Permission denied ln: failed to create symbolic link './feeds/nss_host/nss-host': File exists failed. Updating feed 'nss_cust' from '../qca/feeds/nss_cust' ... rm: cannot remove './feeds/nss_cust': Permission denied ln: failed to create symbolic link './feeds/nss_cust': File exists failed. Updating feed 'nss_userspace' from '../qca/feeds/nss-userspace' ... rm: cannot remove './feeds/nss_userspace': Permission denied ln: failed to create symbolic link './feeds/nss_userspace': File exists failed. Updating feed 'nss_flowid' from '../qca/feeds/nss-flowid' ... rm: cannot remove './feeds/nss_flowid': Permission denied ln: failed to create symbolic link './feeds/nss_flowid': File exists failed. Updating feed 'nss_sap' from '../qca/feeds/nss-sap' ... rm: cannot remove './feeds/nss_sap': Permission denied ln: failed to create symbolic link './feeds/nss_sap/nss-sap': File exists failed. Updating feed 'wlan_open' from '../qca/feeds/wlan-open' ... rm: cannot remove './feeds/wlan_open': Permission denied ln: failed to create symbolic link './feeds/wlan_open/wlan-open': File exists failed. Updating feed 'wlan_hostapd' from '../qca/feeds/wlan-hostapd' ... rm: cannot remove './feeds/wlan_hostapd': Permission denied ln: failed to create symbolic link './feeds/wlan_hostapd/wlan-hostapd': File exists failed. Updating feed 'wlan_iw' from '../qca/feeds/wlan-iw' ... rm: cannot remove './feeds/wlan_iw': Permission denied ln: failed to create symbolic link './feeds/wlan_iw/wlan-iw': File exists failed. Updating feed 'sigma_dut_open' from '../qca/feeds/sigma-dut-open' ... rm: cannot remove './feeds/sigma_dut_open': Permission denied ln: failed to create symbolic link './feeds/sigma_dut_open/sigma-dut-open': File exists failed. Updating feed 'ath10k_firmware' from '../qca/feeds/ath10k-firmware' ... rm: cannot remove './feeds/ath10k_firmware': Permission denied ln: failed to create symbolic link './feeds/ath10k_firmware': File exists failed. Updating feed 'wlan' from '../qca/feeds/wlan' ... rm: cannot remove './feeds/wlan': Permission denied ln: failed to create symbolic link './feeds/wlan': File exists failed. Updating feed 'qca' from '../qca/feeds/qca' ... rm: cannot remove './feeds/qca': Permission denied ln: failed to create symbolic link './feeds/qca/qca': File exists failed. Updating feed 'athdiag' from '../qca/feeds/athdiag' ... rm: cannot remove './feeds/athdiag': Permission denied ln: failed to create symbolic link './feeds/athdiag/athdiag': File exists failed. Updating feed 'art2' from '../qca/feeds/art2' ... rm: cannot remove './feeds/art2': Permission denied ln: failed to create symbolic link './feeds/art2': File exists failed. Updating feed 'athtestcmd' from '../qca/feeds/athtestcmd' ... rm: cannot remove './feeds/athtestcmd': Permission denied ln: failed to create symbolic link './feeds/athtestcmd/athtestcmd': File exists failed. Updating feed 'wapid' from '../qca/feeds/wapid' ... rm: cannot remove './feeds/wapid': Permission denied ln: failed to create symbolic link './feeds/wapid': File exists failed. Updating feed 'qcom_utils_internal' from '../qca/feeds/qcom-utils-internal' ... rm: cannot remove './feeds/qcom_utils_internal': Permission denied ln: failed to create symbolic link './feeds/qcom_utils_internal': File exists failed. Updating feed 'qca_platform_utils' from '../qca/feeds/qca-platform-utils' ... rm: cannot remove './feeds/qca_platform_utils': Permission denied ln: failed to create symbolic link './feeds/qca_platform_utils/qca-platform-utils': File exists failed. Updating feed 'shortcut_fe' from '../qca/feeds/shortcut-fe' ... rm: cannot remove './feeds/shortcut_fe': Permission denied ln: failed to create symbolic link './feeds/shortcut_fe': File exists failed. Updating feed 'qca_mcs' from '../qca/feeds/qca-mcs' ... rm: cannot remove './feeds/qca_mcs': Permission denied ln: failed to create symbolic link './feeds/qca_mcs/qca-mcs': File exists failed. Updating feed 'qca_lib' from '../qca/feeds/qca-lib' ... rm: cannot remove './feeds/qca_lib': Permission denied ln: failed to create symbolic link './feeds/qca_lib/qca-lib': File exists failed. Updating feed 'apple_homekit' from '../qca/feeds/apple-homekit' ... rm: cannot remove './feeds/apple_homekit': Permission denied ln: failed to create symbolic link './feeds/apple_homekit': File exists failed. Updating feed 'ieee1905_security' from '../qca/feeds/ieee1905-security' ... rm: cannot remove './feeds/ieee1905_security': Permission denied ln: failed to create symbolic link './feeds/ieee1905_security/ieee1905-security': File exists failed. Updating feed 'hyfi' from '../qca/feeds/hyfi' ... rm: cannot remove './feeds/hyfi': Permission denied ln: failed to create symbolic link './feeds/hyfi/hyfi': File exists failed. Updating feed 'qca_plc' from '../qca/feeds/qca-plc' ... rm: cannot remove './feeds/qca_plc': Permission denied ln: failed to create symbolic link './feeds/qca_plc': File exists failed. Updating feed 'whc' from '../qca/feeds/whc' ... rm: cannot remove './feeds/whc': Permission denied ln: failed to create symbolic link './feeds/whc/whc': File exists failed. Updating feed 'bluetopia' from '../qca/feeds/bluetopia' ... rm: cannot remove './feeds/bluetopia': Permission denied ln: failed to create symbolic link './feeds/bluetopia/bluetopia': File exists failed. Updating feed 'wigig_utils' from '../qca/feeds/wigig-utils' ... rm: cannot remove './feeds/wigig_utils': Permission denied ln: failed to create symbolic link './feeds/wigig_utils': File exists failed. Updating feed 'wigig_utils_oss' from '../qca/feeds/wigig-utils-oss' ... rm: cannot remove './feeds/wigig_utils_oss': Permission denied ln: failed to create symbolic link './feeds/wigig_utils_oss': File exists failed. Updating feed 'wigig_firmware' from '../qca/feeds/wigig-firmware' ... rm: cannot remove './feeds/wigig_firmware': Permission denied ln: failed to create symbolic link './feeds/wigig_firmware': File exists failed. Updating feed 'ssdk' from '../qca/feeds/ssdk' ... rm: cannot remove './feeds/ssdk': Permission denied ln: failed to create symbolic link './feeds/ssdk/ssdk': File exists failed. Updating feed 'bluetooth' from '../qca/feeds/bluetooth' ... rm: cannot remove './feeds/bluetooth': Permission denied ln: failed to create symbolic link './feeds/bluetooth': File exists failed. Updating feed 'thread' from '../qca/feeds/thread' ... rm: cannot remove './feeds/thread': Permission denied ln: failed to create symbolic link './feeds/thread': File exists failed. Updating feed 'ioe_bridges' from '../qca/feeds/ioe-bridges' ... rm: cannot remove './feeds/ioe_bridges': Permission denied ln: failed to create symbolic link './feeds/ioe_bridges': File exists failed. Updating feed 'qca_hk' from '../qca/feeds/qca_hk' ... rm: cannot remove './feeds/qca_hk': Permission denied ln: failed to create symbolic link './feeds/qca_hk/qca_hk': File exists failed. Updating feed 'qca_cp' from '../qca/feeds/qca-cp' ... rm: cannot remove './feeds/qca_cp': Permission denied ln: failed to create symbolic link './feeds/qca_cp/qca-cp': File exists failed. Updating feed 'qca_np' from '../qca/feeds/qca_np' ... rm: cannot remove './feeds/qca_np': Permission denied ln: failed to create symbolic link './feeds/qca_np': File exists failed. Updating feed 'qca_lit' from '../qca/feeds/qca-lit' ... rm: cannot remove './feeds/qca_lit': Permission denied ln: failed to create symbolic link './feeds/qca_lit': File exists failed. Updating feed 'csrmesh' from '../qca/feeds/csrmesh' ... rm: cannot remove './feeds/csrmesh': Permission denied ln: failed to create symbolic link './feeds/csrmesh': File exists failed. Updating feed 'sigma_dut' from '../qca/feeds/sigma-dut' ... rm: cannot remove './feeds/sigma_dut': Permission denied ln: failed to create symbolic link './feeds/sigma_dut': File exists failed. Updating feed 'qca_wapi' from '../qca/feeds/qca-wapi' ... rm: cannot remove './feeds/qca_wapi': Permission denied ln: failed to create symbolic link './feeds/qca_wapi': File exists failed. Updating feed 'qca_IOT' from '../qca/feeds/qca-IOT' ... rm: cannot remove './feeds/qca_IOT': Permission denied ln: failed to create symbolic link './feeds/qca_IOT': File exists failed. Updating feed 'bootloader' from '../qca/feeds/bootloader' ... rm: cannot remove './feeds/bootloader': Permission denied ln: failed to create symbolic link './feeds/bootloader/bootloader': File exists failed. Updating feed 'platform_utils' from '../qca/feeds/platform_utils' ... rm: cannot remove './feeds/platform_utils': Permission denied ln: failed to create symbolic link './feeds/platform_utils/platform_utils': File exists failed. Updating feed 'lte_data_oss' from '../qca/feeds/lte-data-oss' ... rm: cannot remove './feeds/lte_data_oss': Permission denied ln: failed to create symbolic link './feeds/lte_data_oss/lte-data-oss': File exists failed. Updating feed 'lte_data_prop' from '../qca/feeds/lte-data-prop' ... rm: cannot remove './feeds/lte_data_prop': Permission denied ln: failed to create symbolic link './feeds/lte_data_prop': File exists failed. Updating feed 'snpe' from '../qca/feeds/snpe' ... rm: cannot remove './feeds/snpe': Permission denied ln: failed to create symbolic link './feeds/snpe': File exists failed. Updating feed 'data_modem_monitor' from '../qca/feeds/data-modem-monitor' ... rm: cannot remove './feeds/data_modem_monitor': Permission denied ln: failed to create symbolic link './feeds/data_modem_monitor': File exists failed. Updating feed 'wlan_utils' from '../qca/feeds/wlan_utils' ... rm: cannot remove './feeds/wlan_utils': Permission denied ln: failed to create symbolic link './feeds/wlan_utils/wlan_utils': File exists failed. Updating feed 'afc' from '../qca/feeds/afc' ... rm: cannot remove './feeds/afc': Permission denied ln: failed to create symbolic link './feeds/afc/afc': File exists failed. Updating feed 'qca_mad' from '../qca/feeds/qca-mad' ... rm: cannot remove './feeds/qca_mad': Permission denied ln: failed to create symbolic link './feeds/qca_mad/qca-mad': File exists failed. Updating feed 'qca_son_mem_debug' from '../qca/feeds/qca-son-mem-debug' ... rm: cannot remove './feeds/qca_son_mem_debug': Permission denied ln: failed to create symbolic link './feeds/qca_son_mem_debug/qca-son-mem-debug': File exists failed. Updating feed 'healthmonitor' from '../qca/feeds/healthmonitor' ... rm: cannot remove './feeds/healthmonitor': Permission denied ln: failed to create symbolic link './feeds/healthmonitor': File exists failed. Updating feed 'minidump' from '../qca/feeds/minidump' ... rm: cannot remove './feeds/minidump': Permission denied ln: failed to create symbolic link './feeds/minidump/minidump': File exists failed. Updating feed 'btdaemon' from '../qca/feeds/btdaemon' ... rm: cannot remove './feeds/btdaemon': Permission denied ln: failed to create symbolic link './feeds/btdaemon/btdaemon': File exists failed. Updating feed 'kickstart' from '../qca/feeds/kickstart' ... rm: cannot remove './feeds/kickstart': Permission denied ln: failed to create symbolic link './feeds/kickstart': File exists failed. Updating feed 'qca_ezmesh' from '../qca/feeds/qca-ezmesh' ... rm: cannot remove './feeds/qca_ezmesh': Permission denied ln: failed to create symbolic link './feeds/qca_ezmesh': File exists failed. Updating feed 'qtip_server' from '../qca/feeds/qtip-server' ... rm: cannot remove './feeds/qtip_server': Permission denied ln: failed to create symbolic link './feeds/qtip_server': File exists failed. Updating feed 'wifi_fw_headers' from '../qca/feeds/wifi-fw-headers' ... rm: cannot remove './feeds/wifi_fw_headers': Permission denied ln: failed to create symbolic link './feeds/wifi_fw_headers': File exists failed. Updating feed 'odd' from '../qca/feeds/odd' ... rm: cannot remove './feeds/odd': Permission denied ln: failed to create symbolic link './feeds/odd': File exists failed. Updating feed 'wifi_debug_tools' from '../qca/feeds/wifi-debug-tools' ... rm: cannot remove './feeds/wifi_debug_tools': Permission denied ln: failed to create symbolic link './feeds/wifi_debug_tools': File exists failed. Updating feed 'qca_rsrcmgr' from '../qca/feeds/qca-rsrcmgr' ... rm: cannot remove './feeds/qca_rsrcmgr': Permission denied ln: failed to create symbolic link './feeds/qca_rsrcmgr/qca-rsrcmgr': File exists failed. Updating feed 'qwes_tools' from '../qca/feeds/qwes_tools' ... rm: cannot remove './feeds/qwes_tools': Permission denied ln: failed to create symbolic link './feeds/qwes_tools': File exists failed. Updating feed 'optic_apps_oss' from '../qca/feeds/optic-apps-oss' ... rm: cannot remove './feeds/optic_apps_oss': Permission denied ln: failed to create symbolic link './feeds/optic_apps_oss': File exists failed. Updating feed 'optic_apps_prop' from '../qca/feeds/optic-apps-prop' ... rm: cannot remove './feeds/optic_apps_prop': Permission denied ln: failed to create symbolic link './feeds/optic_apps_prop': File exists failed. Updating feed 'optic_drivers_oss' from '../qca/feeds/optic-drivers-oss' ... rm: cannot remove './feeds/optic_drivers_oss': Permission denied ln: failed to create symbolic link './feeds/optic_drivers_oss': File exists failed. Updating feed 'optic_drivers_prop' from '../qca/feeds/optic-drivers-prop' ... rm: cannot remove './feeds/optic_drivers_prop': Permission denied ln: failed to create symbolic link './feeds/optic_drivers_prop': File exists failed. Updating feed 'em_ext_ctrl' from '../qca/feeds/em-ext-ctrl' ... rm: cannot remove './feeds/em_ext_ctrl': Permission denied ln: failed to create symbolic link './feeds/em_ext_ctrl': File exists failed. rm: cannot remove 'tmp/.packageinfo': Permission denied make[1]: *** [package/symlinks] Error 1 make[1]: Leaving directory `/ge550v1/qca_95xx_12_2' make: *** [package/symlinks] Error 2 huaxi@fd4bb9d5f3ca:/ge550v1/Iplatform/build$ huaxi@ubuntu:~$ sudo chown -R huaxi:huaxi /ge550v1 [sudo] password for huaxi: huaxi@ubuntu:~$
最新发布
09-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值