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

时间:2014-06-20 09:03:43

标签: php

我试图做一个"阅读更多"脚本,我有这个警告:

  

警告:strpos():Offset未包含在

中的字符串中

此警告仅在初始说明要显示一定数量的字母时显示,但完整描述较小。

我使用隐藏的div来执行此脚本,并且当按钮"读取更多"单击,它切换divs

这是初始描述中的代码,仅显示一些单词。

<div class="listdescription">
<br><?= strip_tags(substr($key['description'] ,0, strpos($key['description'], ' ', 90))) ?><br><
/div>

这是完整的描述

<div class="teste"><?= $key['description'] ?></div>

阅读更多链接

<a class="readmore">read more</a>


<style>
.teste{
display:none;           
}
</style>

点击阅读更多时:

 $( document ).ready(function() {
$('.readmore').click(function(){
$(this).parent().find('.teste').toggle();
$(this).parent().find('.listdescription').toggle();

});
});

2 个答案:

答案 0 :(得分:1)

您需要检查字符串是否超出了您要查找的偏移量:

strlen($key['description']) > 90 ? substr($key['description'] ,0, strpos($key['description'], ' ', 90)) : $key['description']

答案 1 :(得分:0)

来自documentation comments

  

如果偏移量不在0和字符串长度之间,则此函数会发出警告:

     

Warning: strpos(): Offset not contained in string in ...

在这种特定情况下,因为$key['description']短于90个字符。