給定的字符串[「DOCUMENT_ROOT」]如何從一個字符串中刪除$_SERVER['DOCUMENT_ROOT']
這樣 /home/bla/test/pic/photo.jpg
的結果應該這樣 /test/pic/photo.jpg
我還需要如果你的DocumentRoot的對應要到字符串的一部分從/test/pic/photo.jpg
給定的字符串[「DOCUMENT_ROOT」]如何從一個字符串中刪除$_SERVER['DOCUMENT_ROOT']
這樣 /home/bla/test/pic/photo.jpg
的結果應該這樣 /test/pic/photo.jpg
我還需要如果你的DocumentRoot的對應要到字符串的一部分從/test/pic/photo.jpg
採取photo.jpg刪除,解決方案可以使用str_replace
:
echo str_replace($_SERVER['DOCUMENT_ROOT'], '', '/home/bla/test/pic/photo.jpg');
但是請注意,您將遇到$_SERVER['DOCUMENT_ROOT']
內容中的問題出現在字符串的其他位置:每次都會將其刪除。
如果你想確保它只是從字符串的開頭移除,一個解決方案是使用一些正則表達式:
$docroot = '/home/bla';
$path = '/home/bla/test/pic/photo.jpg';
echo preg_replace('/^' . preg_quote($docroot, '/') . '/', '', $path);
注意^
在正則表達式的開始(以表明它應該只匹配字符串的開頭) - 並且不要忘記使用preg_quote
從文檔根目錄中跳出特殊字符。
並且當您有一個包含目錄+名稱的路徑時獲取文件的名稱,可以使用basename
函數;例如,這段代碼部分:
echo basename('/test/pic/photo.jpg');
會給你這樣的輸出:
photo.jpg
$new_string = str_replace($_SERVER['DOCUMENT_ROOT'], '', $string);
$photo = basename($string);
鏈接:
- http://de.php.net/str_replace
- http://de.php.net/basename
..... ...
echo basename(str_replace($_SERVER['DOCUMENT_ROOT'], '', '/home/bla/test/pic/photo.jpg'));
// output: photo.jpg
謝謝帕斯卡爾有一個愉快的一天 – streetparade 2010-03-03 12:20:48
謝謝:-)你也是。 – 2010-03-03 12:23:24