Impartire camp text in pagini
Data publicarii: 02-05-2011 -
Copyright © Razvan
Deseori avem articole (pagini) care conţin mult text şi care lungesc mult pagina la afişare. O soluţie ar fi paginarea acelui articol şi împarţirea lui în bucăţi mai mici pentru o vizibilitate mai bună în site.
Mai jos găsiţi o funcţie şi exemplu de folosire pentru a pagina un text.
COD:
/**
* paginare text
*
* @param str $string - contine textul ce urmeaza a fi paginat
* @param int $pieces - numarul de bucati/caractere dorite
* @param str $type - daca este specificat textul 'chars' atunci paginarea
* se va face in functie de nr de caractere specificate in $pieces
* - daca nu este specificat nimic, atunci paginarea se va face in functie de
* nr de bucati specificate in $pieces
*
* @return array $newtext - returneaza textul paginat sub forma de array
*/
function break_string($string, $pieces, $type = '') {
/*
This function splits a string in a certain number of pieces or after a
number of characters. (without breaking words)
if $type is 'chars' - the string will be split after the selected number of characters
if $type is '' - the string will be split in number of pieces
*/
$length = strlen($string);
$segment = ($type == 'chars') ? $pieces : ceil($length / (int)$pieces);
$newtext = wordwrap($string, $segment, '#|#', true);
$newtext = explode('#|#', $newtext);
$pieces_gen = count($newtext);
//the string is split in a number of pieces - check the number of pieces
if ($type == ''){
while ($pieces_gen > $pieces) {
//too many pieces - merge the last two pieces
$newtext[$pieces_gen - 2] .= ' '.array_pop($newtext);
unset($newtext[$pieces_gen - 1]);
$pieces_gen = count($newtext);
}
}
return $newtext; //$newtext is an array
}
Exemplu de folosire:
COD:
//$text = textul din baza de date;
$text_spart = break_string($text, 5); //impartit in 5 parti
//sau in bucati care contin in jur de 1000 de caractere: $text_spart = break_string($text, 1000, 'chars');
$numar_bucati = count($text_spart);
$part = isset($_GET['part']) ? intval($_GET['part']) : 1;
if ($part < 1 || $part > $numar_bucati)
$part = 1; // se afiseaza mereu prima pagina daca pagina ceruta nu exista
$i=1;
while ($i <= $numar_bucati) {
if($i == $part) {
echo ' '.$i;
}
else {
echo ' <a href="?part='.$i.'">'.$i.'</a>';
}
$i++;
}
echo $text_spart[$part-1];
Dacă aveţi sugestii de înbunătăţire a acestui exemplu puteţi folosi formularul de mai jos din această pagină, iar dacă aveţi neclarităţi vă aştept în forum.
Data publicarii: 02-05-2011 -
Copyright © Razvan
Apasati aici daca doriti sa vedeti alte articole de acelasi autor
Exista 4 articole asemanatoare, apasati aici pentru lista.
- Clasa php pentru paginare
- Sistem de paginare in PHP
- Paginarea datelor cu Zend Framework
- Afisarea paginilor numerotate (paginare)
| Nu exista comentarii la acest articol. Fii primul care isi spune parerea. |





