Pagina 1 din 1

Stergere - Inlocuire diacritice si alte caractere

Scris: Dum Iul 29, 2012
de steell
salut
Vreau sa filtrez dintr-un formular toate litere cu diacritice, cu sedile, si alte litere straine ciudate, sa ramana doar cifrele si literele normale de pe tastatura fara orice diacritice sau sedile etc.
Nu prea am idei cum sa fac asta.

Stergere - Inlocuire diacritice si alte caractere

Scris: Lun Iul 30, 2012
de MarPlo
Salut
Daca vrei sa stergi diacriticile si alte caractere care nu sunt la tastatura standard, poti folosi codul din urmatorul exemplu.
- Dar stergand astfel diacriticile din cuvinte, ramane cuvantul gresit sau chiar cu alt inteles ("aşa casă" devine "aa cas").

Cod: Selectaţi tot

<?php
$str = 'Free Web programming courses: http://www.coursesweb.net. Diacritice  ă Ă â Â î Î ş Ş ţ Ţ íó. Caractere speciale: - _ = <> ? \ " +';
$rgx = '/[^a-z0-9_\.!@#\$%\^&\*\(\)\+=:;"\'\<\>\?\[\],\/\\`~ -\|]+/i';

$str = preg_replace($rgx, '', $str);
echo $str;
?>
Daca vrei sa inlocuiesti diacriticile si alte caractere cu echivalentul lor ASCII, se poate folosi functia din acest exemplu:

Cod: Selectaţi tot

<?php
// inlocuieste diacriticile si alte caractere cu echivalentul ASCII
function replaceSpecialChars($string){
 // http://www.coursesweb.net
  // caractere care trebuie inlocuite cu cele din $add (in aceeasi ordine)
  $rem = array('ă', 'Ă', 'ş', 'Ş', 'ţ', 'Ţ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ð', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', '§', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', '€', 'Ð', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', '§', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Ÿ',
// aceleasi caractere, dar ca entitati HTML
'&agrave;', '&aacute;', '&acirc;', '&atilde;', '&auml;', '&aring;', '&aelig;', '&ccedil;', '&egrave;', '&eacute;', '&ecirc;', '&euml;', '&eth;', '&igrave;', '&iacute;', '&icirc;', '&iuml;', '&ntilde;', '&ograve;', '&oacute;', '&ocirc;', '&otilde;', '&ouml;', '&oslash;', '&sect;', '&ugrave;', '&uacute;', '&ucirc;', '&uuml;', '&yacute;', '&yuml;', '&Agrave;', '&Aacute;', '&Acirc;', '&Atilde;', '&Auml;', '&Aring;', '&AElig;', '&Ccedil;', '&Egrave;', '&Eacute;', '&Ecirc;', '&Euml;', '&euro;', '&ETH;', '&Igrave;', '&Iacute;', '&Icirc;', '&Iuml;', '&Ntilde;', '&Ograve;', '&Oacute;', '&Ocirc;', '&Otilde;', '&Ouml;', '&Oslash;', '&sect;', '&Ugrave;', '&Uacute;', '&Ucirc;', '&Uuml;', '&Yacute;', '&Yuml;');

  // caractere care vor fi adaugate
  $add = array('a', 'A', 's', 'S', 't', 'T', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'ed', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 's', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'EUR', 'ED', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'S', 'U', 'U', 'U', 'U', 'Y', 'Y',
// pentru inlocuit entitatile HTML
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'ed', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 's', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'EUR', 'ED', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'S', 'U', 'U', 'U', 'U', 'Y', 'Y');

    return str_replace($rem, $add, $string);
}

$str = 'Free Web programming courses: http://www.coursesweb.net. Diacritice  ă Ă â Â î Î ş Ş ţ Ţ íó. Caractere speciale: - _ = <> ? \ " +';

$str = replaceSpecialChars($str);
echo $str;
?>