我确实搜索了可以执行此操作的函数,因为我在其他语言中见过它,但在这里找不到。这在与 substr() 结合使用时特别有用,以获取字符串的从开头到特定点的第一部分。
strnpos() - 在 haystack 中查找 needle 的第 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 一起使用,您可以自动发现文档的根目录,以便自动查找全局文件!