massimoabba
21-09-2004, 10:43
Salve a tutti
Ho realizzato uno script PHP che restiuisce nella variabile $content una stringa di lunghezza variabile.
Tale stringa contiene del testo formattato con tag <p>,<h1>,<h2>,<table>. In sostanza contiene un testo con paragrafi, sottoparagrafi e tabelle.
Avrei bisogno di suddividere tale testo in blocchi più o meno della stessa dimensione in modo da poter incapsulare ciascuno di essi tra tag
<div class="altezza"></div>
class="altezza" è una classe CSS che definisce un bordo, una larghezza in pixel e una altezza in pixel.
Quello che voglio ottenere è la visualizzazione in un unica pagina web di una sorta di anteprima di stampa che suddivida il testo in più pagine (in modo da poter essere inserito in box con stessa altezza e stessa larghezza).
Ho provato a suddividere $content in base ad un numero costante di caratteri:
$max_char="1000";
$totpagine=ceil(strlen($content)/$max_char);
for ($i = 0; $i < $totpagine; $i++) {
$pagina= substr($content, $i * $max_char, $max_char)
}
ma il risultato è pessimo poichè le suddivisioni possono cadere tra un tag di apertura e uno di chiusura, es:
...<table>.....suddivisione....</table>....
con conseguente sconvolgimento dell'output finale. E poi, proprio a causa della presenza dei tag HTML in $content, i blocchi di testo così ottenuti, una volta incapsulati nei <div>, producono pagine con contenuto testuale di diversa lunghezza (cioè, alcune più piene, altre meno).
Qualcuno conosce una soluzione alternativa (anche non necessariamente in PHP)?
L'ideale, comunque, sarrebbe avere a disposizione una funzione in grado di calcolare l'altezza in pixel dello spazio occupato dal testo. In tal caso infatti, il testo potrebbe essere suddiviso in base ad un'altezza costante.
Ho realizzato uno script PHP che restiuisce nella variabile $content una stringa di lunghezza variabile.
Tale stringa contiene del testo formattato con tag <p>,<h1>,<h2>,<table>. In sostanza contiene un testo con paragrafi, sottoparagrafi e tabelle.
Avrei bisogno di suddividere tale testo in blocchi più o meno della stessa dimensione in modo da poter incapsulare ciascuno di essi tra tag
<div class="altezza"></div>
class="altezza" è una classe CSS che definisce un bordo, una larghezza in pixel e una altezza in pixel.
Quello che voglio ottenere è la visualizzazione in un unica pagina web di una sorta di anteprima di stampa che suddivida il testo in più pagine (in modo da poter essere inserito in box con stessa altezza e stessa larghezza).
Ho provato a suddividere $content in base ad un numero costante di caratteri:
$max_char="1000";
$totpagine=ceil(strlen($content)/$max_char);
for ($i = 0; $i < $totpagine; $i++) {
$pagina= substr($content, $i * $max_char, $max_char)
}
ma il risultato è pessimo poichè le suddivisioni possono cadere tra un tag di apertura e uno di chiusura, es:
...<table>.....suddivisione....</table>....
con conseguente sconvolgimento dell'output finale. E poi, proprio a causa della presenza dei tag HTML in $content, i blocchi di testo così ottenuti, una volta incapsulati nei <div>, producono pagine con contenuto testuale di diversa lunghezza (cioè, alcune più piene, altre meno).
Qualcuno conosce una soluzione alternativa (anche non necessariamente in PHP)?
L'ideale, comunque, sarrebbe avere a disposizione una funzione in grado di calcolare l'altezza in pixel dello spazio occupato dal testo. In tal caso infatti, il testo potrebbe essere suddiviso in base ad un'altezza costante.