偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PHP file_exists有多坑爹

開(kāi)發(fā) 后端
我原以為是程序里沒(méi)有這個(gè)文件呢,結(jié)果發(fā)現(xiàn),文件是有的,那是怎么回事,我第一反應(yīng)是php版本是不是升級(jí)了,發(fā)現(xiàn)沒(méi)有。后來(lái)把整個(gè)目錄設(shè)置成777就沒(méi)事了(chmod 777 -R 目錄)。我想是不是file_exists()方法問(wèn)題。

我發(fā)現(xiàn)了一個(gè)問(wèn)題,今天與大家分享。我把整個(gè)過(guò)程描述一下。

問(wèn)題

公司有個(gè)框架是基于smarty寫(xiě)的,我負(fù)責(zé)php的升級(jí),維護(hù)人員把新環(huán)境布上來(lái)之后,測(cè)試人員找我提出經(jīng)常報(bào)錯(cuò)(錯(cuò)誤:提示找不到文件的)。我追蹤了一下代碼,原來(lái)是smarty的這個(gè)地方報(bào)的錯(cuò)誤。

錯(cuò)誤:這里報(bào)出文件不存在。

思考過(guò)程:

1、我原以為是程序里沒(méi)有這個(gè)文件呢,結(jié)果發(fā)現(xiàn),文件是有的,那是怎么回事?

2、后來(lái)我再猜是不是php內(nèi)核有問(wèn)題,我把php的相關(guān)內(nèi)核文件看了一遍,也沒(méi)發(fā)現(xiàn)問(wèn)題。結(jié)果我就把整個(gè)過(guò)程跟項(xiàng)目經(jīng)理說(shuō)去了。——事情也沒(méi)解決,就這樣先不了了之。升級(jí)的事情先耽誤著。

今天又發(fā)現(xiàn)這個(gè)問(wèn)題,我***反應(yīng)是php版本是不是升級(jí)了,發(fā)現(xiàn)沒(méi)有。——后來(lái)把整個(gè)目錄設(shè)置成777就沒(méi)事了(chmod 777 -R 目錄)。我想是不是file_exists()方法問(wèn)題。

所以,我就進(jìn)行了相關(guān)的調(diào)試和實(shí)驗(yàn)。

[[70107]]

調(diào)試過(guò)程

調(diào)試代碼:

目錄:

觀察各個(gè)權(quán)限:test對(duì)www是沒(méi)有任何權(quán)限的,而執(zhí)行文件index.php有讀寫(xiě)執(zhí)行權(quán)限,包含文件test.txt有讀寫(xiě)權(quán)限。

運(yùn)行結(jié)果:

[[70109]]

目錄的執(zhí)行權(quán)限影響file_exists()

1、給test一個(gè)***的權(quán)限——755

[[70110]]

既然成功了,說(shuō)明file_exists()函數(shù)是受目錄權(quán)限的限制的。

那什么樣的目錄權(quán)限影響file_exists()呢?

我做了幾個(gè)實(shí)驗(yàn):

1、文件的任何上級(jí)目錄,只有寫(xiě)權(quán)限時(shí)報(bào)文件不存在;

2、文件的任何上級(jí)目錄,只有讀權(quán)限時(shí)也報(bào)文件不存在;

3、而當(dāng)所有上級(jí)目錄都有執(zhí)行權(quán)限的時(shí)候,報(bào)文件是存在的,一切都正常。

結(jié)果,說(shuō)明file_exists()在判斷文件是否存在的時(shí)候是遞歸判斷每個(gè)目錄是不是有執(zhí)行權(quán)限。

修改文件路徑為相對(duì)路徑,得出一樣的結(jié)果。

總結(jié)

在php手冊(cè)上并沒(méi)有提到,file_exists會(huì)受目錄的執(zhí)行權(quán)限影響。今通過(guò)此文告知那些也有這方面問(wèn)題的開(kāi)發(fā)者。僅以此為戒。

附加信息

感謝大家留的言,非常有用。經(jīng)過(guò)大家的意見(jiàn)我再查了下手冊(cè),確實(shí),如果目錄沒(méi)有執(zhí)行權(quán)限,php-fpm應(yīng)用進(jìn)程就不能到這個(gè)目錄下面去進(jìn)行文件搜索,當(dāng)然就認(rèn)為文件不存在(實(shí)際是認(rèn)為沒(méi)有可執(zhí)行的目錄是不存在的)。

手冊(cè)內(nèi)容,大家可以一起斟酌一下,主要是執(zhí)行權(quán)限。在這里就不詳談讀寫(xiě)權(quán)限了(一般都很好理解)。

明顯手冊(cè)中,對(duì)目錄的執(zhí)行權(quán)限有明確的指示。對(duì)目錄的執(zhí)行權(quán)限,就是擁有被搜索的權(quán)利。

[[70111]]

推薦

如果這篇文章對(duì)你有所幫助,或者也讓你解決了此類(lèi)問(wèn)題,請(qǐng)推薦一把,讓哥們有更強(qiáng)的寫(xiě)作動(dòng)力。

原文鏈接:http://www.cnblogs.com/baochuan/archive/2012/05/06/2445822.html

 

責(zé)任編輯:張偉 來(lái)源: 川山甲的博客
相關(guān)推薦

2019-04-09 09:50:34

2011-12-15 09:45:21

PhoneGap

2011-12-22 19:57:38

PhoneGap

2018-01-11 16:30:03

數(shù)據(jù)庫(kù)MySQLSQL

2020-05-21 13:45:03

Java坑爹編程語(yǔ)言

2019-06-13 16:30:37

代碼Java編程語(yǔ)言

2013-12-23 09:44:43

2021-01-13 09:14:00

緩存穿透RPC

2021-05-08 09:02:19

Java類(lèi)加載器

2024-02-02 08:12:40

AB實(shí)驗(yàn)雙盲測(cè)試搜索實(shí)驗(yàn)

2011-09-08 17:31:29

Steply社交圖片

2017-08-29 08:35:01

好技術(shù)淘汰產(chǎn)品

2019-09-10 13:16:23

ARP地址解析協(xié)議局域網(wǎng)

2014-07-22 14:39:46

手游坑爹AppStore

2013-08-05 15:39:00

WP應(yīng)用下載

2013-06-07 13:48:54

2024-04-02 08:41:10

ArrayListSubList場(chǎng)景

2022-03-21 19:24:15

Objects方法false

2019-01-15 10:16:05

2018-04-15 22:17:20

PHP引用變量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)