【问题标题】:PHP paginate string problemPHP分页字符串问题
【发布时间】:2009-10-31 11:04:49
【问题描述】:

我有这个脚本

$content = string
if(!isset($_GET['page'])){
$page = 1;
}
else{
$page = $_GET['page']; 
}

while($content[$limit]!= ' '){
$limit++;
}
print substr($content,($page-1)*$limit, $limit);

它第一次工作得很好(如果页面未设置或页码为 1 )但如果我的页码大于 1 它会拆分我的单词。导致 $limit 增加,甚至 $limit 设置为与空格字符相对应的偏移量 substr() 函数中的开头也增加了,它基本上移动了整个块,我得到的最后一个字符不是我想要的空间但空格后的前几个字母。(我希望我能理解)。我该如何解决这个问题?谢谢

【问题讨论】:

  • 嗯...但是如何使用它;我想制作一个分页脚本,但它看起来不适合我正在尝试做的事情,wordwrap 返回一个字符串。(如果它返回一个数组,它甚至比我的脚本更好)

标签: php string pagination


【解决方案1】:

试试这个:

print substr($content, ($page-1) *  $limit, strpos  ( $content, ' ' , ($page-1) *  $limit));

这说:

取$content的子串, 从给定页面开始 * 限制 每一页,给了我所有的 字符直到 下一个空格。

【讨论】:

    【解决方案2】:

    正如Frank Farmer 所说,使用wordwrap,但带有一个奇怪的分隔符。然后使用带有该分隔符的explode 来获取一个数组。

    $limit = 500; // max chars per page?
    $content = "lots of text ..."; // the whole article?
    
    if(!isset($_GET['page'])){
       $page = 1;
    } else {
       $page = intval($_GET['page']); 
    }
    
    $pages = explode("@BREAK@", wordwrap($content, $limit, "@BREAK@"));
    
    print $pages[$page-1];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 2015-09-26
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多