<?php
 
/**
 
 *  Funzioni di conversione per le stringhe
 
 * 
 
 * @author Dario Mazzeo <dmazzeo@ingele.com>
 
 * @version 1.0.0
 
 * @copyright Freesoftware Italia - www.freesoftwareitalia.it
 
 */ 
 
 
/**
 
 *  Questa funzione converte una stringa dal formato PHP/C al formato HTML
 
 *     
 
 *  @param string $string Stringa in formato PHP/C
 
 *  @return string Ritorna la stringa convertira in formato HTML     
 
 */    
 
function str_html($string){
 
$str="";
 
for ($i=0; $i<strlen($string); $i++){
 
  if (ord($string[$i])==92){
 
    switch (ord($string[++$i])){
 
      case 34: $str.="""; break;
 
      case 39: $str.="'";  break;
 
      case 92: $str.="\\"; break;       
 
    }
 
  }
 
  else{
 
    switch (ord($string[$i])){  
 
      case 38: $str.="&"; break;
 
      case 39: $str.="'";  break;
 
      case 60: $str.="<"; break;
 
      case 62: $str.=">"; break;        
 
      case 94: $str.="ˆ"; break;
 
      case 126: $str.="˜"; break;
 
      case 128: $str.="€"; break;   
 
      default: $str.=$string[$i];
 
    }
 
    //$str.=$string[$i]; //cancellare se si abilita lo switch!
 
  }
 
}    
 
return $str;
 
}
 
 
/**
 
 *  Questa funzione converte una stringa dal formato HTML al formato PHP/C
 
 *   
 
 *  @param string $string Stringa in formato HTML
 
 *  @return string Ritorna la stringa convertira in formato PHP/C     
 
 */   
 
function html_str($string){
 
$string=str_replace(""", "\"", $string);
 
$string=str_replace("'", "\'", $string);
 
$str="";
 
for ($i=0; $i<strlen($string); $i++){
 
  if (ord($string[$i])==92) $i++;
 
  $str.=$string[$i];
 
}
 
return $str;
 
}
 
 
/**
 
 *  Questa funzione converte una stringa dal formato PHP/C al formato URL
 
 *     
 
 *  @param string $string Stringa in formato PHP/C
 
 *  @return string Ritorna la stringa convertira in formato URL
 
 */   
 
function str_url($string){
 
$str="";
 
for ($i=0; $i<strlen($string); $i++){
 
  if (ord($string[$i])==92){
 
    switch (ord($string[++$i])){
 
      case 34: $str.="""; break;
 
      case 39: $str.="'"; break;
 
      //case 92: $str.="%5C"; break;        
 
    }
 
  }
 
  else{
 
    switch (ord($string[$i])){  
 
      //case 32: $str.="%20"; break;
 
      case 38: $str.="&"; break;
 
      //case 46: $str.="%2E"; break;
 
      case 60: $str.="<"; break;
 
      //case 61: $str.="%3D"; break;
 
      case 62: $str.=">"; break;  
 
      //case 63: $str.="%3F"; break;      
 
      case 94: $str.="ˆ"; break;
 
      case 126: $str.="˜"; break;
 
      case 128: $str.="€"; break;   
 
      default: $str.=$string[$i];
 
    }
 
  }
 
}    
 
return $str;
 
}
 
 
/**
 
 *  Questa funzione converte una stringa dal formato PHP/C al formato ASCII
 
 *     
 
 *  @param string $string Stringa in formato PHP/C
 
 *  @return string Ritorna la stringa convertira in formato ASCII
 
 */   
 
function str_ascii($string){
 
$str="";
 
for ($i=0; $i<strlen($string); $i++)
 
  $str.=ord($string[$i])." ";
 
return $str;
 
}
 
 
/**
 
 * Questa funzione applica al'intero array la funzione passata 
 
 *
 
 * Esempio:
 
 * 
 
 * <code>
 
 * $campi[] = array('valore1-1', 'valore1-2', 'valore1-3');
 
 * $campi[] = array('valore2-1', 'valore2-2', 'valore2-3');
 
 * $campi[] = array('valore3-1', 'valore3-2', 'valore3-3');
 
 * str_array($campi, str_html);
 
 * </code>
 
 * 
 
 * @param string[][] $string Array da esaminare
 
 * @param function $function Funzione da applicare
 
 */
 
function str_array(&$string, $function){
 
    for ($i=0; $i<count($string); $i++){
 
        for ($j=0; $j<count($string[$i]); $j++){
 
            $string[$i][$j]=$function($string[$i][$j]);
 
        }
 
    }
 
}
 
 
/**
 
 * Questa funzione consente di convertire la data da un formato all'altro
 
 *
 
 * Esempio:
 
 * 
 
 * <code>
 
 * $data_or = '2005-12-31';
 
 * $data_dest = str_date($data_or, '-', '/', '321');
 
 * echo $data_dest;  // 31/12/2005
 
 * </code>
 
 * 
 
 * @param string $data Data da convertire
 
 * @param string $separator_or Carattere di separazione di origine
 
 * @param string $separator_dest Carattere di separazione di destinazione
 
 * @param string $order Formato in cui ordinare la data
 
 * @return string
 
 */
 
function str_date($data, $separator_or='-', $separator_dest='/', $order='321'){
 
    list ($d[1], $d[2], $d[3]) = explode ($separator_or, $data);
 
      return (string) $d[(int)$order[0]].$separator_dest.
 
                      $d[(int)$order[1]].$separator_dest.
 
                      $d[(int)$order[2]];        
 
}
 
 
/**
 
 * Questa funzione restituisce l'importo in formato euro
 
 *
 
 * Esempio:
 
 * 
 
 * <code>
 
 * $valore = 12345.67;
 
 * echo str_euro($valore);  // € 12.345,67
 
 * 
 
 * $valore = 12345.67891;
 
 * echo str_euro($valore, '€ ', 4); // € 12.345,6789
 
 * </code>
 
 * 
 
 * @param float $valore Importo
 
 * @param string $valuta Carattere di valuta
 
 * @param int $num_decimal Numero di cifre significative dopo la virgola
 
 * @return string
 
 */
 
function str_euro($valore, $valuta='€ ', $num_decimal=2){
 
    return $valuta.number_format($valore, $num_decimal, ',','.');
 
}
 
?>
 
 |