我将网站作为cURL响应,并将其传递给此函数。然后我通过字符串进行迭代,进行一些处理。它有效,但我收到了这个错误:
注意:未初始化的字符串偏移量:75817英寸 /var/www/html/wp-content/plugins/crg-daily/lib/CragslistRawDumpProcessor.class.php 第7行
以下是代码:
public function rollSausage($dump){
$anchorArray = array();
$dumpLength = strlen($dump);
$skipToLetter = 1;
while($skipToLetter < $dumpLength){
$skipToLetter++;
$letter = $dump[$skipToLetter];
...
}
}
有什么想法吗?我认为这与提交的字符串类型有关。这是一个原始的cUrl响应。我正在抓一个网页。
答案 0 :(得分:1)
使用后增加$skipToLetter
(最好在while循环结束时)。你也可能从0开始,而不是1
$skipToLetter = 0;
while($skipToLetter < $dumpLength){
$letter = $dump[$skipToLetter];
...
$skipToLetter++;
}
}
原因如下:假设您有一个长度为4的字符串。这意味着字符串中的最后一个索引是3
。您的索引最多为3.它在while循环(3<4)?
中进行比较,答案为true
。代码进入while循环并增加索引的值,该值将大于字符串的最后一个索引,从而导致警告。
答案 1 :(得分:1)
更新了您的代码......
public function rollSausage($dump){
$anchorArray = array();
$dumpLength = strlen($dump);
$skipToLetter = 1;
while($skipToLetter < $dumpLength){
$skipToLetter++;
if( siset( $dump[$skipToLetter]) )
$letter = $dump[$skipToLetter];
...
}
}
}