Script php: Dividere il testo in due colonne

   difficoltà:  script script script script script

Script simili
15/4/2008


Questa funzione risulterà utile nel caso che qualche cliente per 'facilitarvi' il lavoro volesse visualizzare il testo su due colonne. Bisognerà quindi procedere in modo da dividere il testo in due parti, senza tagliare le parole. Il primo problema che ci poniamo però è quello che anche se il testo fosse equamente diviso in due colonne potremmo avere uno spazio indesiderato alla fine della prima colonna:

---------------  ---------------
---------------  ---------------
---------------  ---------------
---------------  ---------------
---------------  ---------------
---------------  ---------------
------

L'unico modo che mi è venuto in mente per risolvere il problema è quello di spezzare la colonna solo quando viene trovato un punto. Per cui lo spazio bianco a fine colonna avrebbe un senso.

Per cui le operazioni da fare sulla stringa che passiamo alla funzione sono:
- Controllare se nella stringa è presente il punto, se non c'è ritorno l'array delle due colonne, ma in questo caso la seconda colonna sarà vuota.
- Divido la stringa in 2 parti uguali come numero di caratteri. Aggiungendo però alla prima una piccola percentuale, ad esempio del 5%. Questo serve perchè pur dividendo la stringa in 2 parti uguali come numero di caratteri lo spazio occupato dalle due potrà essere diverso, a seconda delle lunghezza delle parole e del font utilizzato, le parole andranno o meno a capo. Aggiungendo una percentuale alla prima colonna mi assicuro in parte che questa sarà più lunga della seconda.
- Una volta ottenuto le due stringhe, andrò a controllare sulla seconda dove si trova il primo punto.
- A questo punto la seconda colonna sarà formata dalla seconda stringa a partire dal punto in poi. E la prima dall'inizio della stringa fino alla lunghezza della prima stringa più la parte prima del punto della seconda.

Vediamo lo script commentato:

<?
function DividiInDue($stringa){
// Controllo che nella stringa ci sia il punto
if(substr_count($stringa, ".")==0){
// Se non c'è il punto ritorno la seconda colonna vuota
$array_colonne=array($stringa, "");
return $array_colonne;
}else{
// Divido la stringa in due x numero di caratteri, aggiungendo alla prima una percentuale
$percentualeDifferenza=5;
$numerocaratteri=strlen($stringa);
$caratteri_stringa_1=ceil($numerocaratteri/2+(($numerocaratteri/2)*$percentualeDifferenza/100));
$caratteri_stringa_2=$numerocaratteri-$caratteri_stringa_1;
// Controllo la posizione del punto nel testo della seconda stringa
$stringa_2=substr($stringa, $caratteri_stringa_1,$numerocaratteri);
$primo_punto=strpos($stringa_2,".");
// La prima colonna sarà di lunghezza pari ai caratteri della prima stringa + la posizione del punto nella seconda +1(il punto)
$colonna_1=substr($stringa, 0,$caratteri_stringa_1+$primo_punto+1);
// Se la prima colonna è lunga come tutta la stringa la seconda colonna è vuota (C'è solo u punto)
if($caratteri_stringa_1+$primo_punto+1==$numerocaratteri){
$colonna_2="";
}else{
// La seconda colonna è la parte della prima stringa dopo il punto.
$colonna_2=substr($stringa, $caratteri_stringa_1+$primo_punto+1,$numerocaratteri-$caratteri_stringa_1+$primo_punto+1);
}
// Ritorno l'array delle colonne
$array_colonne=array($colonna_1, $colonna_2);
return $array_colonne;
}
}

$array_colonne=DividiInDue($stringa);

echo $array_colonne[0]; // Stampo prima colonna
echo $array_colonne[1]; // Stampo seconda colonna
?>


Social:


Donazione:
Se questo script ti è stato utile e ti ho fatto risparmiare tempo e denaro fai una
qualsiasi cifra è ben accetta! 1€, 3€, 5€ ,10€, 50€ ;-) fai te!

Permalink: Tag:
script   php   stringa   colonne  
Script Simili: Permalink: Link utili:
Tools:
Feed RSS    



Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.