警告:strpos():字符串中不包含偏移量


Warning: strpos(): Offset not contained in string in

我在php应用程序中有这样一行:

 $url = $_SERVER['REQUEST_URI'];
$baseHref = $_SERVER['SERVER_NAME']=='localhost' ? '/byetask/' : '/';
$hasMultipleUrlParts = strpos($url, '/', strlen($baseHref)) !== false;

它抛出一个错误,我不明白为什么:

警告:strpos(): C:'bitnami'wampstack-5.6.24-0'apache2'htdocs.....'ng-src'index.php中的字符串中不包含偏移量

我做错了什么吗?有人能给我解释一下吗?谢谢!

字符串$url$baseHref短,所以它试图从字符串的末尾开始搜索

偏移长度有问题,你的偏移长度大于实际字符串,这就是为什么你得到这个错误。

$baseHref = "http://stackoverflow.com";
//$url = "http://stackoverflow.com/questions/"; // URL length is greater than base URL 
$url = ""; // URL is empty or shorter than base url
if(strlen($baseHref) < strlen($url))
 $hasMultipleUrlParts = strpos($url, '/', strlen($baseHref)) !== false;
else 
 $hasMultipleUrlParts = false;
var_dump($hasMultipleUrlParts);

试试这段代码,当$url小于$baseHref或为空时,它将$hasMultipleUrlParts设置为false。