Bonjour,
Je souhaite que l'expression retourne vraie :
- si un mot existe bien dans une chaine
- mais que un autre mot n'existe pas dans cette meme chaine.
J'ai essayé plein de truc mais rien ne fonctionne.
Dans l'attente de votre aide.
Saluts92
Bonjour,
Je souhaite que l'expression retourne vraie :
- si un mot existe bien dans une chaine
- mais que un autre mot n'existe pas dans cette meme chaine.
J'ai essayé plein de truc mais rien ne fonctionne.
Dans l'attente de votre aide.
Saluts92
Bonjour,
Jette un oeil aux fonctions suivantes :
strpos() , strstr() et substr_count()
Cdlt,
hpl76.
j'ai besoin de faire ca avec une seul expression reguliere
en vérité c'est pour l'utiliser dans le moteur de reccherche de Dreamweaver (en mode expression régulière) afin de répérer mes (très nombresues) lignes de codes qui utilise la fonction HTMLENTITIES sans l'argument UTF-8
Si tu cherches la fonction htmlentites pourquoi ne pas utiliser le moteur de recherche et le panneau des résultats, j'te suis pas...
c trop hasardeux d'utiliser le panneau de résultats (surtout que certaine ligne sont tronquées et que j'ai plusieurs centaines de lignes concernées)
je veux répérer les lignes contenant htmlentities sans parametre UTF-8
ca n'existe pas en expression régulière ca ?
Si ça doit pouvoir se faire.
Au final c'est pour faire un rechercher/remplacer ou rechercher/supprimer ?
C'est l'idée ? Dans quel but tu veux faire ça (pour mon info)
hpl76
c'est dans le cadre d'une migration phph 5.3.x vers php 5.4.x
Sous php 5.4.x il est tres fortement conseillé de paramètrer l'encodage dans les fonctions HTMLENTITIES() et HTMLSPECIALCHARACTERS() parceque l'encodage par défaut passe de ISO-8859-1 à UTF-8
Donc je veux sélectionner toutes les lignes de mon code qui n'ont ni UTF-8 ni ISO-8859-1 lorsque j'utilise une des 2 fonctions cités plus haut.
Une idée ?
Re,
Montre un exemple concret de ton code source pour créer la bonne expression.
hpl76.
exemple de ligne de code :
je souhaite rechercher toutes les lignes qui contiennent HTMLENTITIES (c'est le cas des 3 lignes) mais pas UTF-8
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ... <input type='hidden' name='societefac' value='<? print(htmlentities($row["societefac"],ENT_QUOTES));?>'> <input type='hidden' name='nom' value='<? print(htmlentities($row["nomfac"],ENT_QUOTES,'UTF-8'));?>'> <input type='hidden' name='prenom' value='<? print(htmlentities($row["prenomfac"],ENT_QUOTES));?>'> ...
j'attends donc en retour de recherche uniquement les lignes 1 et 3 dans l'exemple ci-dessus
Ok mais après l'idée c'est de les sélectionner pour passer de ça :
à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part print(htmlentities($row["societefac"],ENT_QUOTES))
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part print(htmlentities($row["societefac"],ENT_QUOTES,'UTF-8'))
Il faut utiliser une assertion négative.
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
en fait je veux qu'à la fin toutes mes HTMLENTITIES aient un paramtre d'encodage (UTF-8 par exemple)
mais je ne veux pas faire un chercher:remplacer de masse
donc je vais traiter mes 400 lignes concernées une à une à la main
mais pour savoir les lignes me restant à traiter je veux sélectionner par le moteur de recherche dreamweaver et les expressions régulières les lignes restant à traiter
j'expère avoir été clair
et un simple str_replace ?
Ca devrait faire l'affaire...
hpl76
non comme je viens de le dire je ne veux pas remplacer en masse
deplus cette expression réguilière est destiné au moteur de recherche de dreamweaver pour sélectionner des lignes de code
En d'autres termes, ce n'est pas une regex PHP que tu cherches, mais une Regex pour chercher dans du code PHP via la fonctionnalité de recherche de Dreamweaver.
Déplacé vers le forum DW
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
je n'avais pas vu le message de BOVINO sur les assertions négatives
j'ai lu la doc et j'ai essayé cela (entre autre) :
et cela ne fonctionne pas en tout cas avec Dreamweaver
Code : Sélectionner tout - Visualiser dans une fenêtre à part htmlentities(.+)(?!ENT_QUOTES)
Bon, j'ai pas DW, mais sous Eclipse, j'arrive à trouver tes lignes en utilisant ceci : htmlentities\(([^,]+),([^,^)]+)\).
Si tu n'as pas de bloc 'UTF-8', tu n'as qu'une seule virgule dans la fonction. Donc je cherche les virgules
En décrypté :
- htmlentities\( => cherche la chaine "htmlentities("
- ([^,]+) => un bloc qui ne contient pas de virgule
- , => une virgule
- ([^,^)]+) => un bloc qui ne contient ni virgule ni parenthèse fermante
- \) une parenthèse fermante
Ce qui matche cette expression : htmlentities($row["societefac"],ENT_QUOTES)
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
ALLELUIA ça fonctionne
ca va beaucoup m'aider merci
encore une petite question
j'ai bien compris comment dire que je veux des résultats sans tel ou tel caractère
mais ets il possible d'avoir un résultat SANS une chaine de caratère car ce n'est pas assez précis d'écrire htmlentities\(([^,]+),([^,^)]+)\)
en effet j'ai du code PHP qui peut s'insérer dans l'écriture du htmlentities et qui contient des virugules ou des parenthèses
Le problème du cas "qui n'est pas la chaine", c'est de savoir où et comment arrêter la recherche.
En l’occurrence, tu cherches une chaine qui commence par htmlentities(, qui contient n'importe quel caractère, mais qui ne contient pas 'UTF-8'.
La chaine en rouge dans l'exemple suivant correspond à ces critères :
Ce n'est pas exactement ce que tu cherches, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <input type='hidden' name='societefac' value='<? print(htmlentities($row["societefac"],ENT_QUOTES));?>'> <input type='hidden' name='nom' value='<? print(htmlentities($row["nomfac"],ENT_QUOTES,'UTF-8'));?>'> <input type='hidden' name='prenom' value='<? print(htmlentities($row["prenomfac"],ENT_QUOTES));?>'>
Donc essaye de déterminer des critères qui limitent le résultat.
Par exemple, si toutes les lignes qui n'ont pas 'UTF-8' finissent pas ENT_QUOTES, on peut rechercher les chaines qui commencent par htmlentities(, finissent par ENT_QUOTES) et contiennent n'importe quel caractère entre les deux : htmlentities\((.*)ENT_QUOTES\).
Comme aurait dit une de mes profs de langue il y a longtemps : "Si vous ne savez pas dire 'avalanche', mais que vous savez dire 'neige qui court sur la montage', vous arriverez toujours à vous faire comprendre"
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager