PHP Conference Japan 2024
新增筆記

使用者貢獻的筆記 3 則筆記

5
MarkAndrewSlade at gmail dot com
15 年前
如果您傳遞非符號連結,這將觸發警告並傳回 false。如果檔案不存在,它將觸發不同措辭的警告。

mslade@jupiter ~$ touch a
mslade@jupiter ~$ ln -s a b
mslade@jupiter ~$ ls -l {a,b}
-rw------- 1 mslade mslade 0 2009-06-10 15:27 a
lrwxrwxrwx 1 mslade mslade 1 2009-06-10 15:27 b -> a
mslade@jupiter ~$ php -r "var_dump(readlink('b'));"
string(1) "a"
mslade@jupiter ~$ php -r "var_dump(readlink('a'));"

警告:readlink(): Invalid argument in Command line code on line 1
bool(false)
mslade@jupiter ~$ php -r "var_dump(readlink('c'));"

警告:readlink(): No such file or directory in Command line code on line 1
bool(false)
0
casinero dot triste at OH_NO_SPAM dot gmail dot com
7 年前
一個讀取到最底層連結的小函式
(如果符號連結(最終)指向不存在的路徑,realpath 無法做到這一點,因為它在這種情況下只會傳回 false。)

function readlinkToEnd($linkFilename) {
if(!is_link($linkFilename)) return $linkFilename;
$final = $linkFilename;
while(true) {
$target = readlink($final);
if(substr($target, 0, 1)=='/') $final = $target;
else $final = dirname($final).'/'.$target;
if(substr($final, 0, 2)=='./') $final = substr($final, 2);
if(!is_link($final)) return $final;
}
}
-1
casinero dot triste at OH_NO_SPAM dot gmail dot com
7 年前
一個讀取到最底層連結的小函式
(如果符號連結(最終)指向不存在的路徑,realpath 無法做到這一點,因為它在這種情況下只會傳回 false。)

function readlinkToEnd($linkFilename) {
if(!is_link($linkFilename)) return $linkFilename;
$final = $linkFilename;
while(true) {
$target = readlink($final);
if(substr($target, 0, 1)=='/') $final = $target;
else $final = dirname($final).'/'.$target;
if(substr($final, 0, 2)=='./') $final = substr($final, 2);
if(!is_link($final)) return $final;
}
}
To Top