<?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, ',','.');
}
?>
|