Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/07/2006, 02h03   #1
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
Par défaut Alphabet occidental et autres : filtre

Petite question php.

J'aimerais savoir si il est possible de filtrer simplement un chaîne de caractères codée en UTF-8 contenant des mots anglais et des mot écrits avec d'autre alphabet que le notre.

Mon but est de filtrer tout ce qui n'utilise pas l'alphabet occidental.

Merci.

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2006, 11h31   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
tu peux toujours te tourner vers les regexp il y a une option exprès pour travaillera avec l'utf-8 : http://fr3.php.net/manual/fr/referen....modifiers.php
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2006, 13h20   #3
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
Merci pour ta réponse, j'ai regardé le lien, mais la seul relation avec utf-8 est :

Citation:
u (PCRE8)

Cette option désactive les fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl. Les chaînes sont traitées comme des chaînes UTF-8. Cette option est disponible en PHP 4.1.0 et plus récent sur plate-forme Unix et en PHP 4.2.3 et plus récent sur plate-forme Windows.
Du coup je ne vois pas trop.

Moi je voudrais juste remplacer "طراحی web" par "web" tout simplement.

Le truc c'est que les caractères zarbis (perse, cyrillique, etc ...) sont transformé par des chiffres avec un ereg_replace("[^a-zA-Z0-9]", "", $texte), donc je me dis qu'il faut les virer avant, et c'est ma question.

Je continue de chercher, marci pour ta réponse.
++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 11h09   #4
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
effectivement si tu fais un
Code :
preg_replace("#[^a-z0-9]#i", "", $texte);
ca devrait de te remplacer tout ce qui n'est pas un chiffre ou un lettre par du vide ... ca marche pas ?
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 11h50   #5
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
Si si, ça marche très bien, mais j'aimerais remplacer par rien direct, car il serait dommage de virer tous les chiffres pour cela.

J'aimerai éviter :

Code :
preg_replace("#[^0-9]#i", "", $texte);
Pour pouvoir conserver des chiffre dans la partie occidentale des termes.

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 11h55   #6
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
tu as testé mon regexp ? que fait il sur ton texte, car logiquemen il vire tout ce qui n'est pas a-z et 0-9 ...
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 15h05   #7
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
Bah oui, il fait la même chose que le ereg_replace : (si bien entendu on remplace par des "-" et pas rien) :

طراحی web

donne :

1591-1585-1575-1581-1740-web

J'ai donc pas dû être clair, mais voilà, je voudrais juste "web", mais si possible sans virer tous les chiffres obligatoirement avec une deuxieme passe.

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 15h26   #8
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
va voir comment sont tes caractères dans la source de ta page html ... c'est pour ca que tu as un probleme !!

ca doit etre de l'ascii ou un autre truc ...
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 23h34   #9
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
Ah oui, tiens, si on regarde la façon dont
طراحی web

est codé dans cette page on trouve :

Code :
1
2
<br>
1591-1585-1575-1581-1740-web<br>
du coup tout s'explique.

Mes lacune en char-set sont dévoilées, mais bon, on le savait

Donc, du coup, c'est quoi ça, de l'ascii ou de l'utf-8? Et c'est chaud à filtrer la sans enlever les chiffres de la partie occidentale du texte non?

Une idée ?

Merci pour ta patience en tous cas

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 23h50   #10
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
& # 1591; & # 1585; & # 1575; & # 1581; & # 1740; web
C'est plutôt ca !! (sans les espaces)

en gros, c'est de html ascii ça !! donc ce qui est &#avec 4 chiffres et ; tu vires

et ca devrait aller ... ou tu fais l'inverse de htmlentites c'est a dire http://fr.php.net/manual/fr/function...ity-decode.php et du coup ton regex devrait marcher ... tu peux tester tout ça !!

Bon taff !
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 11h50   #11
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
erf,
Le code que j'ai posté provenait bien du code source de la page, mais pour des raisons que j'ignore, décidément, les voies du cher-set sont difficilement pénétrables , le texte en exemple apparaît avec des caractères perse dans la code maintenant.
Du coup je vois pas ou tu l'as trouvé codé en ASCII. Et html_entity_decode ne change rien.

Je ferais bien un rég-ex si j'ai un bon séparateur (&# => virer &# suivit de 4 chiffres, mais là j'ai pas ça on dirais.

Je vais voir si virer - suivit de 4 chiffre ne le ferait pas du coup, mais n'y a t'il pas des exception, genre des caractère de deux lettres ?

Pour l'instant $texte= ereg_replace("[^a-zA-Z]", "-", $texte); est ma meilleur solution, mais cela empêche de traiter des chiffres latins.

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 11h56   #12
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
moi j'ai fais afficher la source pour voir cela
et toi tu as fais quoi ? sur quel navigateur ?

Sinon montre ton regexp, car ca devrait marcher !!

je suis gentil ce matin :
Code :
1
2
3
4
5
<?php
$in = '/&#[0-9]{4};/i';
$out = "";
preg_replace($in, $out, $txt);
?>
Voila, ca marche avec des caractères comme j'ai dit

Sinon regarde d'ou tu les prends les caractères, et regarde bien comment ils sont !!
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 12h18   #13
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
tu me rassures.

en fait, j'ai simplement fait un "afficher la source de la sélection dans firefox (up to date ) et j'ai vu ce que j'ai posté (c'est un copier collé) dans le message précédant.

Et plus étrange encore, aujourd'hui, je vois les caractères perse dans le code source arf.

En tous cas merci bcp ça marche nickel

++
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 12h28   #14
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
en fait, je sais pas si c'est un bug, mais que tu demandes afficher le code source de la selection sous firefox, il t'affiches pas le vrai code source ...
il t'affiche ce qu'il veut bien

il faut donc toujours faire afficher la source et chercher dans la source
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 12h29   #15
dcz
Invité régulier
 
Inscription : mars 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 29
Points : 6
Points : 6
C'est une bonne leçon

Merci encore, c'est sympa
dcz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h38.


 
 
 
 
Partenaires

Hébergement Web