公司有個框架是基于smarty寫的,我負責php的升級,維護人員把新環境布上來之后,測試人員找我提出經常報錯(錯誤:提示找不到文件的)。   我追蹤了一下代碼,原來是smarty的這個地方報的錯誤。 錯誤:這里報出文件不 " /> 国产人妻午夜无码AV天堂,又亲又揉摸下面视频免费看,欧美丰满熟妇无码XOXOXO

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP file_exists問題雜談

問題

  公司有個框架是基于smarty寫的,我負責php的升級,維護人員把新環境布上來之后,測試人員找我提出經常報錯(錯誤:提示找不到文件的)。
  我追蹤了一下代碼,原來是smarty的這個地方報的錯誤。

錯誤:這里報出文件不存在。
  思考過程:
  1、我原以為是程序里沒有這個文件呢,結果發現,文件是有的,那是怎么回事?
  2、后來我再猜是不是php內核有問題,我把php的相關內核文件看了一遍,也沒發現問題。結果我就把整個過程跟項目經理說去了。――事情也沒解決,就這樣先不了了之。升級的事情先耽誤著。
  今天又發現這個問題,我第一反應是php版本是不是升級了,發現沒有。――后來把整個目錄設置成777就沒事了(chmod 777 -R 目錄)。我想是不是file_exists()方法問題。
  所以,我就進行了相關的調試和實驗。

調試過程  調試代碼:

目錄:

 

觀察各個權限:test對www是沒有任何權限的,而執行文件index.php有讀寫執行權限,包含文件test.txt有讀寫權限。

運行結果:

 

 目錄的執行權限影響file_exists() 1、給test一個最大的權限――755

 


既然成功了,說明file_exists()函數是受目錄權限的限制的。
那什么樣的目錄權限影響file_exists()呢?
我做了幾個實驗:
1、文件的任何上級目錄,只有寫權限時報文件不存在;
2、文件的任何上級目錄,只有讀權限時也報文件不存在;
3、而當所有上級目錄都有執行權限的時候,報文件是存在的,一切都正常。
結果,說明file_exists()在判斷文件是否存在的時候是遞歸判斷每個目錄是不是有執行權限。

修改文件路徑為相對路徑,得出一樣的結果。

總結

php手冊上并沒有提到,file_exists會受目錄的執行權限影響。今通過此文告知那些也有這方面問題的開發者。僅以此為戒。

附加信息

感謝大家留的言,非常有用。經過大家的意見我再查了下手冊,確實,如果目錄沒有執行權限,php-fpm應用進程就不能到這個目錄下面去進行文件搜索,當然就認為文件不存在(實際是認為沒有可執行的目錄是不存在的)。
手冊內容,大家可以一起斟酌一下,主要是執行權限。在這里就不詳談讀寫權限了(一般都很好理解)。

明顯手冊中,對目錄的執行權限有明確的指示。對目錄的執行權限,就是擁有被搜索的權利。

php技術PHP file_exists問題雜談,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 耻辱の奴隷淑女中文字幕 | 嫩草影院未满十八岁禁止入内 | 内射无码AV-区二区在线观看 | 九九在线免费视频 | 国产成人拍精品免费视频爱情岛 | 亚洲精品高清视频 | 嫩草影院在线观看精品视频 | 亚洲乱码中文字幕久久孕妇黑人 | 午夜伦理yy44008影院 | 双性被疯狂灌满精NP | 中文字幕欧美日韩VA免费视频 | 538prom国产在线视频一区 | 99久久国产综合精品网成人影院 | 鬼灭之刃花街篇免费樱花动漫 | 久久有码中文字幕 | 神马午夜不卡片 | 在线亚洲中文精品第1页 | 欧美5g影院天天爽天天看 | 啊好大好厉害好爽真骚 | 99久久免费看少妇高潮A片 | 99re精品视频在线播放视频 | 玩高中女同桌肉色短丝袜脚文 | 一二三四中文字幕在线看 | 乳女教师欲乱动漫无修版动画 | 中文字幕乱码亚洲无线三区 | 午夜不卡久久精品无码免费 | 国产一区二区不卡老阿姨 | 国产在线一区二区三区四区 | 国内精品偷拍在线观看 | 姉调无修版ova国语版 | 天天躁躁水汪汪人碰人 | 777久久人妻少妇嫩草AV | 三级黄视频 | 老师洗澡让我吃她胸的视频 | 亚洲AV无码乱码国产麻豆穿越 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 邻家美姨在线观看全集免费 | 久久热在线视频精品店 | 在线精品国精品国产不卡 | 在线中文字幕网站 | 免费国产足恋网站 |