回答
echo str_replace("/directory/","","/directory/a/b");
,並使用此對其他類型的字符串,您的滿弦進入第三個參數,不管你是「減」去作爲第一個參數。
-1編寫的解決方案用於粘貼代碼,而不是閱讀的問題 - OP希望某些東西能夠與路徑一起工作,而不是簡單的字符串替換,這是我閱讀它的方式。 – 2009-11-18 02:41:48
由於您正在使用路徑,因此平臺敏感性非常重要; Windows具有與大多數其他平臺不同的路徑分隔符,並且編寫可重用的代碼,因此無法平息平臺。
PHP有幾個函數來處理路徑。如果您遞交了一個非常奇怪的路徑,如~foo/bar//bitty/../index.php
,請使用realpath
爲您清理。
$path = realpath("~foo/bar//bitty/../index.php");
/* output: /home/foo/bar/index.php */
其他功能將幫助您 - 例如,獲得自身的文件名的路徑部分,使用dirname
:
print dirname($path);
/* output: /home/foo/bar */
一旦你的,對隔板分開,做任何你想要的工作。真正的訣竅是讓PHP擔心所有的路徑奇怪,然後分別與每個部分一起工作。請同時查看pathinfo
和basename
。我認爲這是你要求的,而不是如何做啞字符串替換。
不要忘記不允許注入您的應用程序!使用來自Web輸入的路徑是危險的。永遠不要相信用戶輸入
但似乎你沒有涉及如何以一般的方式做減法路徑? – Mask 2009-11-18 03:01:47
使用dirname()函數和一些字符串,可以將原始路徑剪切並獲取塊。
<?php
// from: http://php.net/manual/en/function.dirname.php
$path = "/dirname/a/b";
$dir = dirname(dirname($path));
echo "dir at front=$dir\n";
$len = strlen($dir);
$dirname = substr ($path, 0, $len+1);
echo "dirname=$dirname\n";
$last_2 = substr ($path, $len+1);
echo "last_2=$last_2\n";
?>
結果
$ php x.php
dir at front=/dirname
dirname=/dirname/
last_2=a/b
- 1. 在XSLT中做文件路徑操作
- 2. 如何在php中進行鏈操作
- 3. 如何對字符串進行路徑操作?
- 4. 在python中操作路徑
- 5. 如何操作R中的文件路徑?
- 6. 文件路徑操作通過string.Substring
- 7. 如何將對應於文件路徑的列表中的校驗和與操作系統中的文件路徑進行比較在Python中?
- 8. 如何在Python中使用textwrapper進行文件操作
- 9. NodeJS中的路徑操作
- 10. 如何在Eclipse插件中獲取IJavaProject的類路徑作爲文件路徑?
- 11. C#路徑操作
- 12. Python路徑操作
- 13. 如何定義文件夾路徑php?
- 14. 對文件路徑進行編碼
- 15. 如何確定是否應該在您的Web路徑下或Web路徑內部進行操作?
- 16. 指定路徑運行在cron作業PHP文件
- 17. (多操作系統)獲取可執行文件路徑
- 18. 對java中的文件進行操作
- 19. 在PHP中消毒文件路徑
- 20. 在php中的圖像文件路徑
- 21. 在php中添加trailingslash文件路徑
- 22. 如何在控制器操作方法中獲取我的文件路徑?
- 23. 如何在Perl中更正文件的操作系統特定路徑?
- 24. PHP Composer在哪裏存儲PHP二進制文件的路徑?
- 25. 運行cron的php文件的路徑
- 26. 如何在文件路徑中處理〜
- 27. 如何在JavaScript中路徑文件?
- 28. 如何操作Tcl中路徑名的組件?
- 29. 僅在找到某些特定文件的路徑中執行操作
- 30. 如何在路徑中設置一個gem二進制文件?
取決於正是你想做的事,一個簡單的正則表達式或str_replace函數就可以了 – 2009-11-18 02:27:16