如何修复此代码上的“strpos():字符串中不包含偏移量”

用户3013440

我的一些代码有时会抛出错误,但找不到原因。
错误strpos(): Offset not contained in stringwhile语句上。

我知道这个错误意味着什么,但我不知道为什么有时我会出现这个错误......

这是代码的一部分:

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......

FBHY

这段代码应该可以正常工作。没问题。

在你的情况下$p不能大于你的参数。

请确保您的参数$args['name']string. 我很确定它不是。
我敢打赌它是一个数组 ( is_array())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到包含偏移量和反向的特定字符串的 N 行?

从mysql中包含字符串的列初始化偏移量

如何忽略字符串日期时间的偏移量

如何使用UTC偏移量转换字符串

在字符串中查找元素的偏移量

PHP中的非法字符串偏移量错误

Codeigniter中的字符串偏移量非法

如何在Rust中偏移量的字符串中查找?

如何使用bsoup在xml中查找字符串偏移量?

如何获取大(二进制)文件中字符串的偏移量?

如何在Python中从字符串数组的偏移量中去除前导空格?

您如何解决此通知:未初始化的字符串偏移量:带斜杠的0?

如何通过Javascript获取句子中选定的字符串偏移量开始和偏移量结束

此汇编代码如何获得物理偏移量和页面偏移量之间的差异?

解析包含“ T”和+时区偏移量的日期字符串

非法的字符串偏移量代码点火器

非法的字符串偏移量'name',代码与示例json响应一起使用

非法字符串偏移量未定义偏移量:2

我所有表行上的PHP“警告:字符串偏移量非法”

警告:字符串偏移量非法(在数组上)

Laravel-非法字符串偏移量

警告:字符串偏移量非法

非法的字符串偏移量警告PHP

CakePHP非法字符串偏移量

带有偏移量的子字符串反转

非法字符串偏移量'名称'laravel PHP

警告:非法字符串偏移量“ Opencart 2.1”

警告:“姓氏”的字符串偏移量非法

PHP-数组-非法的字符串偏移量