2010-09-22 11 views
0

J'ai un site raclé dans la variable $ html.PHP: Jeu de caractères conditionnel remplacer dans preg_replace

maintenant je veux remplacer certains caractères avec cette expression

$string1 = preg_replace('/[^A-Za-z0-9äöü!&_=\+-]/i', ' ', $string); 

Le problème est qu'il ya des caractères spéciaux causés par différents jeux de caractères.

J'ai une variable $ charset dans laquelle la chaîne de jeu de caractères de la page est sauvegardée. ie $ charset = "utf-8" ou iso-8859-1 en utf-8, il est la ü lettre allemande que je veux remplacer dans iso-8859-1, il est ü

Est-il possible de dire la remplacer Fonctionne selon le jeu de caractères de la page sans faire d'expressions régulières séparées pour chaque jeu de caractères possible?

+0

si vous connaissez les charsets, vous pouvez utiliser http://www.php.net/manual/de/function.mb-convert-encoding.php – Hannes

+0

merci, je cherchais que – ndi

Répondre

0

Ou vous pouvez essayer d'ajouter

utf8_encode($string); 

AVANT DROIT preg_replace. Je ne suis pas sûr que ça va résoudre votre problème, mais ça pourrait le faire.

Pour plus d'informations, voir: http://se2.php.net/manual/en/function.utf8-encode.php.

+0

merci, aussi intéressant – ndi

+0

Glad I pourrait aider. Avez-vous essayé utf8_encode? Ça a marché? – matsolof