[Soci SLIP] spezzare una stringa con intelligenza (PHP)

Davide Corio davide.corio a domsense.com
Sab 19 Gen 2008 23:47:04 CET


Il giorno sab, 19/01/2008 alle 12.17 +0100, Andrea Primiani ha scritto:
> sto facendo un lavoro in PHP e ho bisogno di tirar fuori da una stringa un 
> certo numero di caratteri, diciamo intorno ai 30, ma eventualmente qualcuno 
> in piu' o in meno pur di non spezzare una parola.

E' una porcheria abbozzata...ma vista l'ora tarda... :)
Inoltre è da parametrizzare e mettere in una funzione altrimenti le
variabili settate vengono alterate di continuo.

###################################################################
<?php

$stringa = "ciao a tutti quanti ";

// setto il numero di caratteri che voglio
$index = 10;

// se dopo $index caratteri non spezziamo una parola, allora fermiamoci
if($stringa[$index+1]==" ")
{
   echo substr($stringa,0,$index+1)."<br/>";
}
// se dopo $index caratteri spezzo a metà una parola, cerchiamo lo 
// spazio più vicino
else
{
   //scorriamo a sinistra la stringa fino a trovare uno spazio
   while($stringa[$index]!=" ")
   {
      if($stringa[$index-1]==" ")
      {
         $index_left=$index;
      }
      $index=$index-1;
   }

   //risettiamo $index perchè è alterato e scorriamo a destra
   $index = 10;
   while($stringa[$index]!=" ")
   {
      if($stringa[$index+1]==" ")
      {
         $index_right=$index;
      }
      $index=$index+1;
   }

   // resettiamo $index per l'ennesima volta :)
   $index = 10;
   // lo spazio più vicino si trova a destra o a sinistra??
   if(-($index_left-$index)<($index_right-$index))
   {
      echo substr($stringa,0,$index_left-1)."<br/>";
   }
   else
   {
      echo substr($stringa,0,$index_right+1)."<br/>";
   }
}
?>

###################################################################


-- 
Davide Corio
email: davide.corio<at>domsense.com
web: http://www.domsense.com




Maggiori informazioni sulla lista Soci