作者joedenkidd (优质的蓝色射手)
看板PHP
标题[请益] 档案是否存在判断
时间Thu Sep 26 20:48:18 2013
各位不好意思,我用 is_file无法正确判断档案是否存在
程式流程如下
1 设定 file_path='\\10.10.0.1\test xx\test xx.xls';
2 rawurlencode(file_path)-->写到db
3 将file_path读出来,用 rawurldecode($file_path)
4 用超连结这个路径,档案开的起来
现在问题来了,问题出在我用 is_file($file_path)档案被判定不存在,
我也试着用file_exists判断,不知道出了什麽问题?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.247.73
1F:→ danny8376:你真的是打 \\ \t 这样? 这根本变跳脱字元了... 09/26 21:16
2F:→ joedenkidd:我打\\\10.10.0.1\test xx\test xxx.xls 09/26 21:21
3F:→ LPH66:要在字串里写一个 \ 要在原始码里写 \\ 09/26 21:22
4F:→ joedenkidd:url link显示是 file://10.10.0.1/test xx/test xx.xl 09/26 21:22
5F:→ LPH66:所以应该要 '\\\\10.10.0.1\\test xx\\test xx.xls' 09/26 21:23
6F:→ joedenkidd:用 <a href='<?$file_path'?>link</a>档案是开的出来的 09/26 21:24
7F:→ joedenkidd:我试看看!! 09/26 21:24
8F:推 ha531102:印象中 php的single quote不是不处理(大部分)特殊字元? 09/26 22:23
9F:→ danny8376:但\\还是会处理 \t映像中会忽略掉 09/26 22:34
10F:→ danny8376:没记错的话single quote只有\' \\会被处理? 09/26 22:34
12F:→ joedenkidd:不知道是不是因为档案中有多个空格?我用replace一样 09/27 09:41
13F:推 hit1205:会不会是 xxxzzz 说的原因 0.0 不过从 comment 看来 09/27 16:03
14F:→ hit1205:只发生在 win32 ... 09/27 16:04
15F:→ danny8376:楼上... 好想也只有win会有这种格式的档案路径耶 09/27 16:35
16F:→ danny8376: 像 09/27 16:35
17F:→ et282523:会不会是档案状态被 cache 住了,试试 clearstatcache() 09/28 23:34
18F:→ et282523:如果你是在同一只 php 一开始有做读档的动作,後来把档案 09/28 23:35
19F:→ et282523:删除,判断 file_exists 会依然是存在哦,档案状态会 09/28 23:36
20F:→ et282523:被暂存~所以删完档要做 clearstatcache() 09/28 23:36
21F:→ joedenkidd:档案没有被删除,用is_dir来判断目录是ok,我觉得是 09/29 07:58
22F:→ joedenkidd:路径太长或夹多个空白造成的,我记得windows路径长度不 09/29 07:59
23F:→ joedenkidd:能超过255我用strlen看也没有超过,我再试看看,缩短路 09/29 08:00
24F:→ joedenkidd:径看行不行,另一个是档名夹带多个连续空白,目前就无 09/29 08:01
25F:→ joedenkidd:解!! 09/29 08:01
26F:推 cwlin0416:is_dir 可以, 那你用 readdir 看能不能抓到档名 09/29 11:21