[PHP] internationale characters omzetten naar gewone, regex?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo!

Ik zou graag voor mijn zoekmachine vriendelijke url's hetvolgende willen doen.. Ik ben met een database voor wijn bezig en daar zitten een hoop Franse wijnen in :-) maar die wijnen hebben vaak in de naam een e met een streepje, a met een streepje, etc etc. à á È.

Nu zou ik het liefst die tekens omzetten naar gewoon a a E.

$name = str_replace("à","a",$name);

werkt wel, maar om dat voor alle characters te doen, lijkt me een beetje onnodig.
Ik heb het idee dat dit met regex ook moet kunnen, maar hier heb ik nog niet echt veel kaas van gegeten.

Weet iemand van jullie of dit met regex mogelijk is, of of dit wellicht met str_replace op een eenvoudigere wijze te doen is?

--

Verder vroeg ik me af hoe ik volledige strings kan omzetten naar alleen kleine letters. Dus "De Koe Is Klein" zou dan "de koe is klein" moeten worden.

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 23:49

TeeDee

CQB 241

Verder vroeg ik me af hoe ik volledige strings kan omzetten naar alleen kleine letters. Dus "De Koe Is Klein" zou dan "de koe is klein" moeten worden.
strtolower

[ Voor 10% gewijzigd door TeeDee op 25-02-2008 20:58 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • keisersose
  • Registratie: Maart 2003
  • Laatst online: 29-05 17:34
In de php manual staan bij de str_replace en de strtr wel een aantal voorbeelden.
http://nl2.php.net/manual/nl/function.str-replace.php
http://nl2.php.net/manual/nl/function.strtr.php

Bijvoorbeeld:
PHP:
1
2
3
4
5
function replace_accents($str) {
  $str = htmlentities($str, ENT_COMPAT, "UTF-8");
  $str = preg_replace('/&([a-zA-Z])(uml|acute|grave|circ|tilde|cedil|ring);/', '$1',$str);
  return html_entity_decode($str);
}

[ Voor 17% gewijzigd door keisersose op 25-02-2008 21:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nu hetvolgende gedaan, dit leek mij de slimste oplossing:

code:
1
2
3
4
5
6
7
8
$title = str_replace(array("à","á","â","ã","ä","å"),"a",$title);
    $title = str_replace(array("è","é","ê","ë"),"e",$title);
    $title = str_replace(array("ì","í","î","ï"),"i",$title);
    $title = str_replace(array("ð","ò","ó","õ","ö"),"o",$title);
    $title = str_replace(array("ù","ú","û","ü"),"u",$title);
    $title = str_replace("ç","c",$title);
    
    echo $title;


Het is misschien niet waterdicht, maarja.. misschien dat ik dat htmlentities ooit onder de knie krijg, maar bovenstaande code werkte op een of andere manier niet.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

kijk eens naar www.php.net/strtr ;)

[ Voor 98% gewijzigd door SchizoDuckie op 26-02-2008 00:02 ]

Stop uploading passwords to Github!