View Full Version : [PHP] Convertire in entità l'euro su un file di testo
E' un pò che mi sto arrovellando per cercare di convertire in entità HTML il simbolo dell'euro che si trova all'interno di un file di testo. Ho provato con le funzioni di conversioni di entità di php ma non ho risolto, magari sbaglio qualcosa, posto il codice da me utilizzato con la funzione ereg_replace() che dovrebbe rimpiazzare l'euro scritto da me in formato esadecimale. Come risolvo? Grazie :cool:
$var=fopen("prova.txt","r");
$leggi=fread($var,filesize("prova.txt"));
$sss=nl2br($leggi);
fclose($var);
$sss = ereg_replace("\xe2\x82\xac","€",$sss);
echo $sss;
La funzione html_entities l'hai provata ?
Ti riferisci a htmlentities() , per caso? Questa si, purtroppo non funziona con l'euro, porc...:( html_entities come l'hai scritta tu è diversa? :fagiano:
No...mi ricordavo male il nome :sofico:
ISO-8859-15 ISO8859-15 Western European, Latin-9. Con in più il simbolo dell'Euro e i caratteri francesi e finnici mancanti in Latin-1(ISO-8859-1).
Quindi passalo come terzo parametro e ti converte anche l'euro.
http://www.php.net/manual/it/function.htmlentities.php
Come risolvo? Grazie :cool:
$sss = ereg_replace("\xe2\x82\xac","€",$sss);L'operazione di replace è corretta e funzionante. Ma si presuppone che il testo sia codificato in UTF-8, perché la sequenza E2h 82h ACh è appunto la codifica UTF-8 del carattere Unicode U+20AC (simbolo dell'euro).
In alternativa puoi usare htmlentities specificando utf-8:
$sss = htmlentities ($sss, ENT_QUOTES, "utf-8");
:( Purtroppo ho provato in tutti e i due i modi che mi avete descritto, ma nulla. Però è strano perchè così:
<?php $var=fopen("prova.txt","r");
$leggi=fread($var,filesize("prova.txt"));
$sss=nl2br($leggi);
fclose($var);
$sss = htmlentities ($sss, ENT_QUOTES, "ISO-8859-15");
echo $sss;
?>
dovrebbe funzionare e invece mi trasforma tutto (anche i <br />), ma non l'euro che rimane sempre un quadratino (visualizzando la pagina col browser), poi nella sorgente...HTML vedo che è rimasta così € . :muro: :muro:
stdecden
02-08-2007, 17:50
prova a usare:
$sss = str_replace("€","€",$sss);
prova a usare:
$sss = str_replace("€","€",$sss);
E' la prima cosa che ho provato, ovviamente non funziona :(
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.