2013-06-18 48 views
0

我有一個包含在Windows網絡上的完整路徑文件的變量$路徑(例如R:\somedir\otherdir\lastdir\some.file.extPHP目錄名()滴整個路徑

當我使用:

$location = dirname($path); 

這裏,$location只記錄值.

我在做什麼錯?

+0

從手動:'自PHP 4.3.0,你經常會得到一個斜線或點從目錄名的情況下()又回到了舊的功能會給你空string.'我建議閱讀這裏的筆記:http://php.net/manual/en/function.dirname.php – sgroves

+0

謝謝我已閱讀此條目,$ path包含斜線,所以我不知道發生了什麼。 – CurrySoup

+0

它包含反斜槓,而不是斜槓 – sgroves

回答

1

您使用了錯誤的斜線。 代替使用反斜線的\使用正常的斜線/

的文件路徑和一個URI是不同的。 \在Windows文件 中是正確的,並且/在URI中是正確的。

所以這個文件路徑:C:\文檔\富轉換爲這個URI: 文件:/// C:/文件/富

從PHP文件:

如果路徑中沒有斜槓,返回一個點('。'),表示當前目錄爲 。否則,返回的字符串是刪除任何尾部/組件的任何 路徑。

這意味着問題在於你的斜槓是錯誤的。

http://php.net/manual/en/function.dirname.php

0

考慮使用正斜槓'/'。

+0

謝謝,我試過這個,但它並沒有從最後剝去文件名。 – CurrySoup

+1

他正在使用反斜槓 - 這是一個斜線(\是一個黑色的斜線) – sgroves

+0

是否有反正在一個字符串中將斜線改成反斜槓?該字符串由HTML表單中的標記生成。 – CurrySoup