我一直在尋找一個可以做到這一點的函式,因為我在其他語言中看過,但在這裡找不到。與 substr() 結合使用時,此函式特別有用,可以擷取字串的第一部分到特定位置。
strnpos() - 尋找 needle 在 haystack 中第 n 次出現的位置。
<?php
function strnpos($haystack, $needle, $occurance, $pos = 0) {
for ($i = 1; $i <= $occurance; $i++) {
$pos = strpos($haystack, $needle, $pos) + 1;
}
return $pos - 1;
}
?>
範例:擷取直到第四個 '/' 出現之前的部分。
<?php
$haystack = "/home/username/www/index.php";
$needle = "/";
$root_dir = substr($haystack, 0, strnpos($haystack, $needle, 4));
echo $root_dir;
?>
回傳:/home/username/www
將此範例與伺服器變數 $_SERVER['SCRIPT_NAME'] 作為 haystack 一起使用,您可以自行探索文件的根目錄,以便自動定位全域檔案!