Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Le pire, c'est que si je fait un mélange des deux (ajout depuis tinymce puis manuellement)... seules disparaissent les balises créees manuellement.
Est-ce que vos balises crées par l'éditeur contiennent bien une espace, ou s'agit-il d'un quelconque caractère blanc mais codé différemment ? -- Greetings, Salutations, Guiraud Belissen, Château du Ciel, Drachenwald, Chris CII, Rennes, France
>
J'ai une fonction qui supprime les paragraphes vide (de type <p> </p>).
Je suis pas fortiche en expression régulière mais ça donne ça :
Si l'info a été insérée manuellement dans la base... ma fonction
"fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne
fonctionne pas... et c'est de lui dont j'ai besoin.
Le pire, c'est que si je fait un mélange des deux (ajout depuis tinymce
puis manuellement)... seules disparaissent les balises créees manuellement.
Est-ce que vos balises crées par l'éditeur contiennent bien une espace,
ou s'agit-il d'un quelconque caractère blanc mais codé différemment ?
--
Greetings, Salutations,
Guiraud Belissen, Château du Ciel, Drachenwald,
Chris CII, Rennes, France
Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Le pire, c'est que si je fait un mélange des deux (ajout depuis tinymce puis manuellement)... seules disparaissent les balises créees manuellement.
Est-ce que vos balises crées par l'éditeur contiennent bien une espace, ou s'agit-il d'un quelconque caractère blanc mais codé différemment ? -- Greetings, Salutations, Guiraud Belissen, Château du Ciel, Drachenwald, Chris CII, Rennes, France
Olivier Miakinen
Bonjour,
Le 24/04/2009 15:58, Anthony a écrit :
Je suis confronté à un truc qui m'hallucine... mais peut être que quelques esprits éclairés y verront mieux que moi.
J'ai une fonction qui supprime les paragraphes vide (de type <p> </p>).
Je suis pas fortiche en expression régulière mais ça donne ça :
Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Je n'ai peut-être pas tout compris de tes explications, mais si je devine bien il est possible que ton éditeur insère un caractère blanc non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale par défaut) soient les suivants : - espace " " - saut de page "f" - saut de ligne "n" - retour chariot "r" - tabulation horizontale "t" - tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset est par exemple ISO-8859-1, tu peux essayer : $texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas d'avoir un saut de page ou une tabulation verticale : $texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Bonjour,
Le 24/04/2009 15:58, Anthony a écrit :
Je suis confronté à un truc qui m'hallucine... mais peut être que
quelques esprits éclairés y verront mieux que moi.
J'ai une fonction qui supprime les paragraphes vide (de type <p> </p>).
Je suis pas fortiche en expression régulière mais ça donne ça :
Si l'info a été insérée manuellement dans la base... ma fonction
"fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne
fonctionne pas... et c'est de lui dont j'ai besoin.
Je n'ai peut-être pas tout compris de tes explications, mais si je
devine bien il est possible que ton éditeur insère un caractère blanc
non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale
par défaut) soient les suivants :
- espace " "
- saut de page "f"
- saut de ligne "n"
- retour chariot "r"
- tabulation horizontale "t"
- tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace
insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset
est par exemple ISO-8859-1, tu peux essayer :
$texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas
d'avoir un saut de page ou une tabulation verticale :
$texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Je n'ai peut-être pas tout compris de tes explications, mais si je devine bien il est possible que ton éditeur insère un caractère blanc non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale par défaut) soient les suivants : - espace " " - saut de page "f" - saut de ligne "n" - retour chariot "r" - tabulation horizontale "t" - tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset est par exemple ISO-8859-1, tu peux essayer : $texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas d'avoir un saut de page ou une tabulation verticale : $texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Patrick Mevzek
Le Fri, 24 Apr 2009 13:58:58 +0000, Anthony a écrit:
Je suis confronté à un truc qui m'hallucine... mais peut être que quelques esprits éclairés y verront mieux que moi.
J'ai une fonction qui supprime les paragraphes vide (de type <p> </p>).
Je suis pas fortiche en expression régulière mais ça donne ça :
Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Pas sûr que cela vous aide, mais êtes vous sûr à 100% que ce sont les mêmes espaces dans les deux cas ? Pour avoir eu le problème (dans un contexte complétement différent), êtes-vous sûr de ne pas avoir des dans un cas et pas dans l'autre, et ces derniers ne sont pas nécessairement attrapés par [[:space:]] (à vérifier dans la documentation).
Sinon, à défaut un contournement par correspondance négative, du genre [^a-z0-9] (à adapter) peut solutionner le problème aussi, mais c'est plus ou moins satisfaisant.
-- Patrick Mevzek . . . . . . . . . . . . . . Dot and Co <http://www.dotandco.net/> <http://www.dotandco.com/> <http://www.dotandco.net/ressources/icann_registrars/prices> <http://icann-registrars-life.dotandco.net/>
Le Fri, 24 Apr 2009 13:58:58 +0000, Anthony a écrit:
Je suis confronté à un truc qui m'hallucine... mais peut être que
quelques esprits éclairés y verront mieux que moi.
J'ai une fonction qui supprime les paragraphes vide (de type <p> </p>).
Je suis pas fortiche en expression régulière mais ça donne ça :
Si l'info a été insérée manuellement dans la base... ma fonction
"fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne
fonctionne pas... et c'est de lui dont j'ai besoin.
Pas sûr que cela vous aide, mais êtes vous sûr à 100% que ce sont les
mêmes espaces dans les deux cas ? Pour avoir eu le problème (dans un
contexte complétement différent), êtes-vous sûr de ne pas avoir des
dans un cas et pas dans l'autre, et ces derniers ne sont pas
nécessairement attrapés par [[:space:]] (à vérifier dans la
documentation).
Sinon, à défaut un contournement par correspondance négative, du genre
[^a-z0-9]
(à adapter)
peut solutionner le problème aussi, mais c'est plus ou moins satisfaisant.
--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
<http://www.dotandco.net/ressources/icann_registrars/prices>
<http://icann-registrars-life.dotandco.net/>
Si l'info a été insérée manuellement dans la base... ma fonction "fonctionne" très bien lorsque je la récupère (excusez le jeu de mot).
Par contre, si je rentre l'info avec tinymce (l'éditeur WYSIWYG), ça ne fonctionne pas... et c'est de lui dont j'ai besoin.
Pas sûr que cela vous aide, mais êtes vous sûr à 100% que ce sont les mêmes espaces dans les deux cas ? Pour avoir eu le problème (dans un contexte complétement différent), êtes-vous sûr de ne pas avoir des dans un cas et pas dans l'autre, et ces derniers ne sont pas nécessairement attrapés par [[:space:]] (à vérifier dans la documentation).
Sinon, à défaut un contournement par correspondance négative, du genre [^a-z0-9] (à adapter) peut solutionner le problème aussi, mais c'est plus ou moins satisfaisant.
-- Patrick Mevzek . . . . . . . . . . . . . . Dot and Co <http://www.dotandco.net/> <http://www.dotandco.com/> <http://www.dotandco.net/ressources/icann_registrars/prices> <http://icann-registrars-life.dotandco.net/>
Anthony
Olivier Miakinen a écrit :
Je n'ai peut-être pas tout compris de tes explications, mais si je devine bien il est possible que ton éditeur insère un caractère blanc non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale par défaut) soient les suivants : - espace " " - saut de page "f" - saut de ligne "n" - retour chariot "r" - tabulation horizontale "t" - tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset est par exemple ISO-8859-1, tu peux essayer : $texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas d'avoir un saut de page ou une tabulation verticale : $texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Merci de votre aide. Mes pages sont en utf8. J'ai donc essayé avec : eregi_replace('<p>[ nrtxa0x20]*</p>','',$texte);
mais pas moyen, les <p> </p> ne sont pas supprimés. je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace insécable codé en utf8.
bien à vous,
Anthony
Olivier Miakinen a écrit :
Je n'ai peut-être pas tout compris de tes explications, mais si je
devine bien il est possible que ton éditeur insère un caractère blanc
non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale
par défaut) soient les suivants :
- espace " "
- saut de page "f"
- saut de ligne "n"
- retour chariot "r"
- tabulation horizontale "t"
- tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace
insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset
est par exemple ISO-8859-1, tu peux essayer :
$texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas
d'avoir un saut de page ou une tabulation verticale :
$texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Merci de votre aide.
Mes pages sont en utf8.
J'ai donc essayé avec :
eregi_replace('<p>[ nrtxa0x20]*</p>','',$texte);
mais pas moyen, les <p> </p> ne sont pas supprimés.
je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace
insécable codé en utf8.
Je n'ai peut-être pas tout compris de tes explications, mais si je devine bien il est possible que ton éditeur insère un caractère blanc non pris en compte par [:space:].
Il me semble que les caractères en questions (du moins dans la locale par défaut) soient les suivants : - espace " " - saut de page "f" - saut de ligne "n" - retour chariot "r" - tabulation horizontale "t" - tabulation verticale "v"
Si ça se trouve, le caractère inséré par ton éditeur est une espace insécable ("xa0" en ISO-8859-*)
Et donc, si jamais ma boule de cristal est en état et que ton charset est par exemple ISO-8859-1, tu peux essayer : $texte=eregi_replace('<p>[[:space:]xa0]*</p>','',$texte);
Voire, pour maîtriser un peu plus et en supposant que tu ne risques pas d'avoir un saut de page ou une tabulation verticale : $texte=eregi_replace('<p>[ nrtxa0]*</p>','',$texte);
Merci de votre aide. Mes pages sont en utf8. J'ai donc essayé avec : eregi_replace('<p>[ nrtxa0x20]*</p>','',$texte);
mais pas moyen, les <p> </p> ne sont pas supprimés. je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace insécable codé en utf8.
bien à vous,
Anthony
Olivier Miakinen
Le 27/04/2009 14:39, Anthony m'a répondu :
[...]
Si ça se trouve, le caractère inséré par ton éditeur est une espace insécable ("xa0" en ISO-8859-*)
La première chose à faire, et j'aurais probablement dû l'écrire, c'est quand même de vérifier ce qu'il y a *vraiment* dans ce texte.
[...]
Merci de votre aide. Mes pages sont en utf8. J'ai donc essayé avec : eregi_replace('<p>[ nrtxa0x20]*</p>','',$texte);
En UTF-8, xa0 n'a aucune chance d'être pris pour une insécable. Note au passage que [:space:] n'avait pas plus de chances de marcher...
Donc : eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace insécable codé en utf8.
Que ce soit en ASCII, en ISO-8859-* ou en UTF-8, x20 représente une espace normale (sécable). D'ailleurs tous les caractères présents dans ASCII se codent à l'identique dans tous les ISO-8859-* et dans UTF-8 ; c'est au delà de x7f que ça se gâte.
Le 27/04/2009 14:39, Anthony m'a répondu :
[...]
Si ça se trouve, le caractère inséré par ton éditeur est une espace
insécable ("xa0" en ISO-8859-*)
La première chose à faire, et j'aurais probablement dû l'écrire, c'est
quand même de vérifier ce qu'il y a *vraiment* dans ce texte.
[...]
Merci de votre aide.
Mes pages sont en utf8.
J'ai donc essayé avec :
eregi_replace('<p>[ nrtxa0x20]*</p>','',$texte);
En UTF-8, xa0 n'a aucune chance d'être pris pour une insécable. Note au
passage que [:space:] n'avait pas plus de chances de marcher...
Donc :
eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace
insécable codé en utf8.
Que ce soit en ASCII, en ISO-8859-* ou en UTF-8, x20 représente une
espace normale (sécable). D'ailleurs tous les caractères présents dans
ASCII se codent à l'identique dans tous les ISO-8859-* et dans UTF-8 ;
c'est au delà de x7f que ça se gâte.
Donc : eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
je ne suis pas sûr pour le x20 mais il me semble que c'est l'espace insécable codé en utf8.
Que ce soit en ASCII, en ISO-8859-* ou en UTF-8, x20 représente une espace normale (sécable). D'ailleurs tous les caractères présents dans ASCII se codent à l'identique dans tous les ISO-8859-* et dans UTF-8 ; c'est au delà de x7f que ça se gâte.
Anthony
Olivier Miakinen a écrit :
Donc : eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
Bon, j'ai tenté et ça ne marche toujours pas. Un grand merci pour les conseils... J'ai donc suivi le conseil de Patrick... je sais c'est moins propre mais ça fonctionne et j'ai déjà pas mal/trop passé de temps dessus.
j'ai donc utilisé : eregi_replace('<p>([^A-Za-z0-9])*</p>','',$texte);
déduction inverse.
anthony
Olivier Miakinen a écrit :
Donc :
eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
Bon, j'ai tenté et ça ne marche toujours pas.
Un grand merci pour les conseils...
J'ai donc suivi le conseil de Patrick... je sais c'est moins propre mais
ça fonctionne et j'ai déjà pas mal/trop passé de temps dessus.
j'ai donc utilisé : eregi_replace('<p>([^A-Za-z0-9])*</p>','',$texte);
Donc : eregi_replace('<p>([ nrt]|xc2xa0)*</p>','',$texte);
Bon, j'ai tenté et ça ne marche toujours pas. Un grand merci pour les conseils... J'ai donc suivi le conseil de Patrick... je sais c'est moins propre mais ça fonctionne et j'ai déjà pas mal/trop passé de temps dessus.
j'ai donc utilisé : eregi_replace('<p>([^A-Za-z0-9])*</p>','',$texte);