我有这个脚本
$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()函数中的开头也增加了它基本上移动了整个块,我得到的最后一个字符不是我想要的空间但是在空间之后的第一个字母。(我希望我能让自己理解)。我该如何解决这个问题?感谢
答案 0 :(得分:1)
如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];
答案 1 :(得分:1)
试试这个:
print substr($content, ($page-1) * $limit, strpos ( $content, ' ' , ($page-1) * $limit));
这说:
获取$ content的子字符串, 从给定页面开始*限制 对于每一页,给我所有的 字符直到位置 下一个空间。