我的一些代码有时会抛出错误,但找不到原因。
错误strpos(): Offset not contained in string
在while
语句上。
我知道这个错误意味着什么,但我不知道为什么有时我会出现这个错误......
这是代码的一部分:
if(!empty($args['name'])){
$p = 0;
while(($p = strpos($args['name'],'&',$p)) !== false){
if(substr($args['name'],$p,5) == '&'){
$p += 5;
}else{
++$p;
$args['name'] = substr($args['name'],0,$p).'amp;'.substr($args['name'],$p);
$p += 4;
}
}
}
我试图通过以下方式更改 While 语句:
while(strlen($args['name']) >= $p && ($p = strpos($args['name'],'&',$p)) !== false){
但这并不能解决问题。
顺便说一下,这段代码来自一个 wordpress 插件,这里是文档:
/** A workaround for seems to be an overlook in WordPress core.
* Dealing with '&' in term name.
* A term name containing '&' is stored in database with '&' instead of '&',
* but search in get_terms is done on raw '&' coming from $_POST variable.
*/
你有什么想法?为什么这段代码有时是错误的?
谢谢
固定
我的变量是一个Array
......
这段代码应该可以正常工作。没问题。
在你的情况下$p
不能大于你的参数。
请确保您的参数$args['name']
是string
. 我很确定它不是。
我敢打赌它是一个数组 ( is_array()
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句