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

时间:2016-09-29 08:17:41

标签: php

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

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

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

  

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

我做错了吗?有人可以解释一下吗?谢谢!

2 个答案:

答案 0 :(得分:6)

字符串$url$baseHref短,因此它会尝试在字符串末尾之外开始搜索。

答案 1 :(得分:1)

偏移长度存在问题,您的偏移长度大于实际字符串,这就是您收到此错误的原因。

$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。

相关问题