我在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中的字符串中未包含偏移量
我做错了吗?有人可以解释一下吗?谢谢!
答案 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。