Problema della stringa paginata PHP
-
22-07-2019 - |
Domanda
ho questo script
$content = string
if(!isset( ho questo script
<*>
funziona bene la prima volta (se la pagina non è impostata o il numero di pagina è 1) ma se il mio numero di pagina è maggiore di 1 divide le mie parole. perché $ limit viene aumentato e anche $ limit viene impostato su un offset che corrisponde a un carattere spazio anche l'inizio nella funzione substr () viene aumentato e sostanzialmente sposta l'intero blocco e l'ultimo carattere che ottengo non è il mio spazio desiderato ma prima un paio di lettere dopo lo spazio (spero di essermi fatto capire). come posso risolvere questo problema? grazie
GET['page'])){
$page = 1;
}
else{
$page = ho questo script
<*>
funziona bene la prima volta (se la pagina non è impostata o il numero di pagina è 1) ma se il mio numero di pagina è maggiore di 1 divide le mie parole. perché $ limit viene aumentato e anche $ limit viene impostato su un offset che corrisponde a un carattere spazio anche l'inizio nella funzione substr () viene aumentato e sostanzialmente sposta l'intero blocco e l'ultimo carattere che ottengo non è il mio spazio desiderato ma prima un paio di lettere dopo lo spazio (spero di essermi fatto capire). come posso risolvere questo problema? grazie
GET['page'];
}
while($content[$limit]!= ' '){
$limit++;
}
print substr($content,($page-1)*$limit, $limit);
funziona bene la prima volta (se la pagina non è impostata o il numero di pagina è 1) ma se il mio numero di pagina è maggiore di 1 divide le mie parole. perché $ limit viene aumentato e anche $ limit viene impostato su un offset che corrisponde a un carattere spazio anche l'inizio nella funzione substr () viene aumentato e sostanzialmente sposta l'intero blocco e l'ultimo carattere che ottengo non è il mio spazio desiderato ma prima un paio di lettere dopo lo spazio (spero di essermi fatto capire). come posso risolvere questo problema? grazie
Soluzione
Prova questo:
print substr($content, ($page-1) * $limit, strpos ( $content, ' ' , ($page-1) * $limit));
Questo dice:
Prendi la sottostringa di $ content, a partire dalla pagina indicata * il limite per ogni pagina, e mi ha dato tutto il caratteri fino alla posizione del spazio successivo.
Altri suggerimenti
Come diceva Frank Farmer , usa wordwrap , ma con uno strano delimitatore. Quindi usa explode con quel delimitatore per ottenere un array.
$limit = 500; // max chars per page?
$content = "lots of text ..."; // the whole article?
if(!isset( Come diceva Frank Farmer , usa wordwrap , ma con uno strano delimitatore. Quindi usa explode con quel delimitatore per ottenere un array.
<*>GET['page'])){
$page = 1;
} else {
$page = intval( Come diceva Frank Farmer , usa wordwrap , ma con uno strano delimitatore. Quindi usa explode con quel delimitatore per ottenere un array.
<*>GET['page']);
}
$pages = explode("@BREAK@", wordwrap($content, $limit, "@BREAK@"));
print $pages[$page-1];