我遇到了用戶上傳文件名的麻煩,我必須處理。當我嘗試訪問它們時,因爲它們中的一些具有特殊字符,所用的命令表示該文件未找到或類似。PHP:轉義文件名爲linux的
我已經使用escapeshellcmd沒有成功。
當我在linux控制檯中使用「tab」鍵(當你開始輸入文件名並且你想要它完成時),bash會正確地轉義文件名,如果我恰好使用那個「轉義」文件名,有用。
我已經試過這樣:
preg_replace("/[^a-zA-Z0-9\-\.\s]/", "\\\\$0", $filename)
逃跑除了數字,字母的一切 - 和空格...但我發現,對於文件「test_1.jpg」,這個命令將其轉換爲「TEST_1 .jpg「,並且它不起作用,因爲」_「不需要轉換。我敢問,如何在Linux控制檯bash中「克隆」「tab」鍵的轉義函數?
謝謝!
爲什麼不重命名文件上傳? – 2011-02-14 15:52:43
對不起,但我不能看到「test_1.jpg」和「test_1.jpg」之間的區別? – 2011-02-14 15:55:58