看板 PHP 關於我們 聯絡資訊
各位不好意思,我用 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
danny8376:你真的是打 \\ \t 這樣? 這根本變跳脫字元了... 09/26 21:16
joedenkidd:我打\\\10.10.0.1\test xx\test xxx.xls 09/26 21:21
LPH66:要在字串裡寫一個 \ 要在原始碼裡寫 \\ 09/26 21:22
joedenkidd:url link顯示是 file://10.10.0.1/test xx/test xx.xl 09/26 21:22
LPH66:所以應該要 '\\\\10.10.0.1\\test xx\\test xx.xls' 09/26 21:23
joedenkidd:用 <a href='<?$file_path'?>link</a>檔案是開的出來的 09/26 21:24
joedenkidd:我試看看!! 09/26 21:24
ha531102:印象中 php的single quote不是不處理(大部分)特殊字元? 09/26 22:23
danny8376:但\\還是會處理 \t映像中會忽略掉 09/26 22:34
danny8376:沒記錯的話single quote只有\' \\會被處理? 09/26 22:34
joedenkidd:不知道是不是因為檔案中有多個空格?我用replace一樣 09/27 09:41
hit1205:會不會是 xxxzzz 說的原因 0.0 不過從 comment 看來 09/27 16:03
hit1205:只發生在 win32 ... 09/27 16:04
danny8376:樓上... 好想也只有win會有這種格式的檔案路徑耶 09/27 16:35
danny8376: 像 09/27 16:35
et282523:會不會是檔案狀態被 cache 住了,試試 clearstatcache() 09/28 23:34
et282523:如果你是在同一隻 php 一開始有做讀檔的動作,後來把檔案 09/28 23:35
et282523:刪除,判斷 file_exists 會依然是存在哦,檔案狀態會 09/28 23:36
et282523:被暫存~所以刪完檔要做 clearstatcache() 09/28 23:36
joedenkidd:檔案沒有被刪除,用is_dir來判斷目錄是ok,我覺得是 09/29 07:58
joedenkidd:路徑太長或夾多個空白造成的,我記得windows路徑長度不 09/29 07:59
joedenkidd:能超過255我用strlen看也沒有超過,我再試看看,縮短路 09/29 08:00
joedenkidd:徑看行不行,另一個是檔名夾帶多個連續空白,目前就無 09/29 08:01
joedenkidd:解!! 09/29 08:01
cwlin0416:is_dir 可以, 那你用 readdir 看能不能抓到檔名 09/29 11:21