1,php strpos 返回 0,和返回 false 有什么区别?让我郁闷啊,看手册了,没明白过来2, $url1 = '/a/b/c/d/index.php'
$url2 = '/a/b/1111/2222/index.php'请问如何返回 $url2 相对于 $url1 的地址为 ../../c/d/index.php
$url2 = '/a/b/1111/2222/index.php'请问如何返回 $url2 相对于 $url1 的地址为 ../../c/d/index.php
返回false表示没有找到字符串.
2 至于2,得容我想想
第二个问题:
可以使用函数str_replace操作,具体如下:
str_replace($url2,"1111/2222","c/d")
应该是这样的
$url2 = '/a/b/1111/2222/index.php';$arrUrl = explode('/', $url2);
$strSearch = "";
for($i=0;$i< count($arrUrl); $i++)
{
if($arrUrl[$i] == "")
continue;
$strTemp = $strSearch . "/" . $arrUrl[$i];
if(strpos($url1, $strTemp) !== 0)
{
break;
}
else
{
$strSearch = $strTemp;
}
}
$strReplace = preg_replace('/\/[^\/]+/is', "../", $strSearch);
echo str_replace($strSearch . "/", $strReplace, $url1);
var_dump(0 === false);?>0,和false看是怎么比了,这在php手册中也说的很清楚,strpos()函数的返回值要先和false进行===比较来判断是否找到子串。