SlideShow

Start Quote Speciale tekens omzetten naar HTML special characters met PHP End Quote

2 jaar geleden --  Reacties 5  - Hits 3351

Vandaag wil ik een super simpel PHP scriptje delen met jullie waar ik zelf veel gebruik van maak. Alle websites die ik maak probeer ik in valid HTML te schrijven. Een van de dingen waar ik dan tegen aan liep was de speciale characters in mijn teksten. Om je website het beste weer te geven moet je eigenlijk speciale tekens omzetten naar HTML special characters. Dus een ë moet je in je code noteren als ë

Omdat ik bijna alles doe met PHP en MYSQL heb ik een scriptje gemaakt die voor mij de speciale tekens omzet naar HTML special characters voordat de tekst in de MYSQl database opgeslagen wordt. Hieronder het scriptje wat je zelf kan aanpassen voor eigen gebruik. Het voorbeeld dat ik hier deel is zo simpel mogelijk gelaten om het wat inzichtelijker te maken.

 

speciale_tekens.php
<?php
// Hieronder staat de tekst waar ik de speciale tekens uit wil halen
$inhoud = "Äls dë wég vrïj Ís kÙÑ jÈ dôòr";
 
// In de array $zoek heb ik alle tekens gezet die ik uit mijn teksten gefilterd wil hebben
$zoek = array("á", "é", "í", "ó", "ú", "ñ", "ç", "Á", "É", "Í", "Ó", "Ú", "Ñ", "Ç", "à", "è", "ì", "ò", "ù", "À", "È", "Ì", "Ò", "Ù",
 "ä", "ë", "ï", "ö", "ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â", "Ê", "Î", "Ô", "Û");
 
// In de array $vervang heb ik alle Special HTML chracters neergezet die de tekens uit de $zoek array vervangen
// Belangrijk hierbij is om dezelfde volgorde aan te houden als de array $zoek
$vervang = array("&aacute;", "&eacute;", "&iacute;", "&oacute;", "&uacute;", "&ntilde;", "&ccedil;", "&Aacute;", 
"&Eacute;", "&Iacute;", "&Oacute;", "&Uacute;", "&Ntilde;", "&Ccedil;", "&agrave;", "&egrave;", "&igrave;", "&ograve;",
 "&ugrave;", "&Agrave;", "&Egrave;", "&Igrave;", "&Ograve;", "&Ugrave;", "&auml;", "&euml;", "&iuml;", "&ouml;", 
"&uuml;", "&Auml;", "&Euml;", "&Iuml;", "&Ouml;", "&Uuml;", "&acirc;", "&ecirc;", "&icirc;", "&ocirc;", "&ucirc;", "&Acirc;", 
"&Ecirc;", "&Icirc;", "&Ocirc;", "&Ucirc;");
 
// str_replace gebruik ik nu om de tekst die in $inhoud staat te filteren op speciale tekens
// Als er speciale tekens gevonden worden dan worden ze vervangen voor de HTML special chracters uit de array $vervang
$inhoud = str_replace($zoek,$vervang,$inhoud); 
 
// Laat de gefilterde tekst zien 
echo $inhoud;
?>

Als je dit script test zul je in principe geen verschil zien totdat je in de broncode van de pagina kijkt. Dan zul je zien dat de tekst wordt weggeschreven als: &Auml;ls d&euml; w&eacute;g vr&iuml;j &Iacute;s k&Ugrave;&Ntilde; j&Egrave; d&ocirc;&ograve;r


Home | Web | Category | Tags | Top Geplaatst onder: Tutorials .
Tags: PHP . Scripts .

Reacties op: Speciale tekens omzetten naar HTML special characters met PHP

  •  Ingrid 2 jaar geleden
      Ingrid
    Excuus, ik had natuurlijk even netjes de commentaar slashes moeten gebruiken bij mijn stukje code.
    mailaddress2 POST email
    subject2 Votre message agrave nous
    content2 Ch egrave re . name . , r n
    nous avons bien re ccedil u votre message via notre site, nous vous contacterons d egrave s que possible. blablabla
    En dat ziet er als volgt uit in de e mail
    Ch egrave re Mme. Ingrid,

    nous avons bien re ccedil u votre message via notre site, nous vous contacterons d egrave s que possible.

    Daar wordt een ontvanger niet vrolijk van ik ook niet trouwens

    Fijn weekend alvast, Ingrid
  •  Ingrid 2 jaar geleden
      Ingrid
    Hallo Steven,
    mooie site, ik ga hem zeker bookmarken! en bovenstaand script is bijzonder handig.

    Maar nu, ik zit met een omgekeerd probleem en ik weet werkelijk niet hoe het op te lossen dus ben ik zo vrij mijn vraag aan jou voor te leggen.

    Ik heb een formulier geschreven met een action in php. Mail naar mij, mail naar bezoeker en een bedankt pagina. In het Spaans en Frans en daarbij ontkom ik niet aan de speciale karakters. Formulier werkt perfect, bedankt pagina toont door de echo keurig alle speciale karakters in leesbare tekst maar de e mail output is een rommeltje want alle speciale karakters die in de php boven de head sectie staan worden niet omgezet naar leesbare tekst. Als ik ze gewoon als letter met een accent tik is de output een ander rommeltje. Hier een stukje van de inhoud van de 2e e mail, dollarteken heb ik weggelaten.

    content2 Ch egrave re . name . , r n
    nous avons bien re ccedil u votre message via notre blablabla...

    Ik ben een beginnende doe het zelf Php er en ik zie vast iets over het hoofd maar ik heb geen flauw idee wat. Speurtocht op internet leverde mij een htmlspecialchar decoder, stukken tekst in een string gezet etc.. maar dat werkte ook niet en toen ...toen kwam ik hier uit.
    Hopelijk kan jij mij uit de rommel helpen.

    Alvast hartelijk dank,
    Ingrid
  •  Whaha 2 jaar geleden
      Whaha
    htmlspecialchars ?
  •  Steven Groothuismink 2 jaar geleden
      Steven Groothuismink
    Hallo Ramon,
    Bedankt voor je reactie! Als je hulp nodig hebt hoor ik het graag. Veel plezier met het script!
    Groet Steven
  •  Ramon 2 jaar geleden
      Ramon
    Hi,
    Hartstikke bedankt! Had al even gezocht naar zo n scriptje maar vind nu wat ik zocht. Heldere korte uitleg, ga er mee stoeien om het te verwerken in mijn script.
    Groet Ramon

NIEUWE REACTIE
  1. * Uw email adres wordt alleen gebruikt voor de Avatar. Voor de Avatars maakt deze website gebruik van Gravatar.com.

Archief


TrapperDesign.com

Bekijk mijn LinkedIn profiel Volg mij op Twitter   Facebook