[PHP] Naar een algemene euro teken converteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SI4live
  • Registratie: Januari 2003
  • Laatst online: 12-09-2024
Hallo, ik ben al een tijdje bezig met het converteren van de eurotekens in bepaalde teksten naar de html special char €
Alleen krijg ik het maar niet voorelkaar om alle eurotekens in € te veranderen (wel een behoorlijk aantal), vooral in teksten die met utf-8 zijn gecodeerd, maar ook in sommige ISO-8859-1 gecodeerde teksten.

Hier is mijn code:
PHP:
1
2
3
4
5
6
7
function changeEurosign($content) {
        //dit werkt voor de meeste ISO-8859-1 gecodeerde teksten, maar niet allemaal
    $content = preg_replace("/\x80|\xa4/i", '€', $web_content); 
        //dit zijn gewoon paar standaard namen/formaten die gebruikt worden voor het euroteken
    $content = preg_replace("/€?|&euro|EUR|Euro|€/", '€', $web_content);
    return $content;
}


Nou is mijn doel om deze functie te laten werken met alle ISO-8859-1 en UTF-8 gecodeerde teksten.
Mijn vraag is dan ook of dit wel mogelijk is. (want ik neem aan dat we dan de hexadeximale waarden moeten vervangen door € en dit kan voor complicaties lijden als ik voor de hand de codering niet weer). Zo ja, wil ik graag wat tips ontvangen.

http://www.swfemedia.com


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Dat gaat nooit werken omdat het euro teken niet voorkomt in ISO-8859-1. Wil je het euroteken gebruiken dan dien je ISO-8859-15 te gebruiken wat latin-1. Deze inherit ISO-8859-1 en voegt daar het euro teken (8364) aan toe.

Er zijn echter applicaties die ISO-8859-1 automatisch veranderen naar ISO-8859-15 (zoals Internet Explorer), maar dat hoort eigenlijk niet.

Wat betreft de encoding van het euroteken kun je het beste € gebruiken omdat dit ook werkt in XML documenten waar de entity 'euro' niet is gedefineerd.

[ Voor 18% gewijzigd door Niemand_Anders op 31-01-2008 16:10 ]

If it isn't broken, fix it until it is..