如果該針在乾草堆的開始處,某種針頭發生後獲取字符串部分的有效方法是 。類似於strstr()
,但是不包括的針頭,只有在發現字符串的時候纔開始。如果找不到,應該最好返回false。只有在某個基本字符串後才能獲得字符串的最後部分的有效方法
我有這種感覺,我忽略了一些非常明顯的PHP函數,但我現在似乎無法想象它們。
例如:
$basePath = '/some/dir/';
$result = some_function('/some/dir/this/is/the/relative/part', $basePath);
/*
should return:
this/is/the/relative/part
*/
$result = some_function('/fake/dir/this/is/the/relative/part', $basePath);
$result = some_function('/pre/some/dir/this/is/the/relative/part', $basePath);
/*
last example has '/some/dir/' in it, but not at start.
should both preferably return:
false
*/
我將使用這一個文件系統服務,應作爲一個沙箱行動,應該能夠發出,並採取的路徑,相對於基礎沙盒目錄。
我非常喜歡'strncmp'變體! – 2011-03-17 16:56:12
PS .: strncmp變體上的'strlen($ path)> $ baselen'是多餘的,不是?還是我忽略了這裏至關重要的事情? – 2011-03-17 17:08:47
@fireeyedboy:我添加了檢查,以防路徑與基地相匹配。你會收到一個「虛假」的回答,基本上,「我沒有進一步的信息來抓」。 – 2011-03-17 17:11:32