PHP paginate dize sorun

2 Cevap php

ben bu komut dosyası var

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

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

gayet güzel ilk kez (sayfa ayarlamak veya sayfa numarası 1 değil ise) ama benim sayfa sayısı 1'den büyükse bu sözlerimi böler çalışır. için neden $ limiti artar ve hatta $ limiti ayarlanmış bir olduğunu) fonksiyonu çok artar ve bu temelde bütün yığın kaydırır ve ben almak son karakter benim aranan bir alan değildir (bir boşluk karakteri için substr başlangıç ​​karşılık mahsup ama boşluktan sonraki harf ilk çift. (i Anlatabildim yapılan umuyoruz). ben nasıl bu sorunu düzeltebilirim? teşekkürler

2 Cevap

Bu deneyin:

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

Bu diyor ki:

Take the sub-string of $content, starting at the given page * the limit for each page, and given me all the characters up to the position of the next space.

Frank Farmer Dediğim gibi, wordwrap kullanın, ama garip bir sınırlayıcı ile. Sonra bir dizisini almak için bu ayraç ile explode kullanın.

$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];