expression reguliere - PHP - Programmation
Marsh Posté le 01-06-2003 à 12:48:38
avec l'affichage des numéros de ligne, ca serait mieux...
Marsh Posté le 01-06-2003 à 12:49:40
gizmo a écrit : avec l'affichage des numéros de ligne, ca serait mieux... |
la ligne 266 c'est celle la:
|
Marsh Posté le 01-06-2003 à 13:02:38
ok, compris. remplace déjà tous les \\x par $x qui est la nouvelle syntaxe, ca devrait te montrer facilement ton erreur
Marsh Posté le 01-06-2003 à 13:15:30
gizmo a écrit : ok, compris. remplace déjà tous les \\x par $x qui est la nouvelle syntaxe, ca devrait te montrer facilement ton erreur |
je crois que c'est ses regex qui ne sont pas bonne car j'ai remplacer une ligne pour tester:
$reponse = preg_replace("/\[g\](.+?)\[/g\]/si", "<b>\\1</b>", $reponse);
$reponse = preg_replace('/(\[g\])(.*?)(\[\/g\])/', "<b>\\2</b>", $reponse);
et la ca marche.Il avait oublié de mettre des parenthese.
finallement,je crois que je vais faire mes propres regex
Marsh Posté le 01-06-2003 à 13:22:55
-> Rien A Voir
-> Rien A Vendre
-> demmeRdes toi maintenAnt sale Vulve
Marsh Posté le 01-06-2003 à 13:24:48
simogeo a écrit : |
merci
en effet RAV
le probleme venait de la:
Citation : \[/g\]/ -> \[\/g\]/ |
Marsh Posté le 01-06-2003 à 15:49:06
j'ai un probleme avec cette expression:
/( |\r\n|\n|\r|:|;)(http|https|ftp|mms)\:\/\/([^ !\'\"()\r\n]+)/i |
c'est pour detecter un lien,met ca detecte mal l'url.Cela se passe en general avec les caracteres avant l'url.
Vous voyez pas d'ou viens le problemes ?
Marsh Posté le 01-06-2003 à 15:56:15
je vois pas bien l'intérêt de ca: ( |\r\n|\n|\r|:|;) en début de regexp.
Et le reste m'a l'air assez tordu comme manière d'arreter la sélection.
Marsh Posté le 01-06-2003 à 16:05:45
je profite de ce topic pour poser une ptite question qui a aucun rapport : c koa la fonction pour afficher le temps dexecution de toutes les requetes mysql executées ?
g cherché mais je trouve po
Marsh Posté le 01-06-2003 à 16:11:39
gizmo a écrit : je vois pas bien l'intérêt de ca: ( |\r\n|\n|\r|:| en début de regexp. |
ben j'en sais rien,je commence a aprendre les regex aujourd'hui.Si tu as un conseil,je veux bien
j'ai deja reussi a faire l'url lorsque c'est en debut de topic:
/^(http|https|ftp|mms)\:\/\/([^ !\'\"()\r\n]+)/i |
maintenant il me manque lorsque l'url est au milieu du message.
tu voix pas comment faire?
Marsh Posté le 01-06-2003 à 16:27:58
orazur a écrit : je profite de ce topic pour poser une ptite question qui a aucun rapport : c koa la fonction pour afficher le temps dexecution de toutes les requetes mysql executées ? |
y'a une fonction PHP pour ça ? m'etonnerait
a mon avis il faut se servir d'une classe de bench et poser un marqueur avant et en fin de requête
( http://www.phpteam.net/affiche.php?quoi=pear_bench1 )
Marsh Posté le 01-06-2003 à 17:34:57
forummp3 a écrit : ben j'en sais rien,je commence a aprendre les regex aujourd'hui.Si tu as un conseil,je veux bien
|
j'en ai marre,je trouve pas
Marsh Posté le 01-06-2003 à 17:57:17
heuuu si tu veux ... j'en ai une toute faite que j'avais choppée pour un projet
Marsh Posté le 01-06-2003 à 18:07:45
simogeo a écrit : heuuu si tu veux ... j'en ai une toute faite que j'avais choppée pour un projet |
je veux bien
Marsh Posté le 01-06-2003 à 18:15:13
Code :
|
Marsh Posté le 01-06-2003 à 18:20:14
simogeo a écrit :
|
phpinfo.net non?
Marsh Posté le 01-06-2003 à 18:24:44
forummp3 a écrit : phpinfo.net non? |
je ne me souviens plus exactement mais fort possible
Marsh Posté le 01-06-2003 à 18:29:02
simogeo a écrit :
|
comment qu'elle est pourrie cette regexp
Marsh Posté le 01-06-2003 à 18:33:50
gizmo a écrit : |
pourquoi
Marsh Posté le 01-06-2003 à 18:42:31
c'est con ça
Marsh Posté le 01-06-2003 à 20:37:29
gizmo a écrit : parce que pour elle, m://? c'est une url valide |
tu crois que http://? c'est mieux
sinon t'as pas une idée pour ma regex ?
Marsh Posté le 01-06-2003 à 21:41:20
non, mais bon, joce et les regexp...
c'est pas très dur pourtant. il suffit juste de savoir ce que tu autorise comme type d'url.
Par exemple, cette regexp autorise toute url qui commence par http, https, ftp, mms ou www mais refuse les url avec login et mot de passe (utilisation du @) et les url internes (type http://localhost/).
/(((http|https|ftp|mms)\:\/\/){0,1}|www\.)(\w+?)(\.)([^!\"\'()\r\n ]+?)/
Y a moyen de faire plus restrictif ou plus permissift, mais ca allonge la regexep car on split les morceaux.
Marsh Posté le 01-06-2003 à 21:58:57
gizmo a écrit : non, mais bon, joce et les regexp... |
mais mon probleme c'est qu'il y a les reges pour les images,donc,si j'ai <img="http://www.site.com/ttt.jpg"> ca va me transforme ca en url
Marsh Posté le 02-06-2003 à 00:08:25
bah dans ce cas, il faut savoir ce que tu permets: des url avec un espace devant ou non, derrière un :, etc... et sur ces bases tu construis le début de ta regexp.
Marsh Posté le 02-06-2003 à 08:51:18
gizmo a écrit : bah dans ce cas, il faut savoir ce que tu permets: des url avec un espace devant ou non, derrière un :, etc... et sur ces bases tu construis le début de ta regexp. |
vu que j'ai commencer a aprendre hier,je metrise pas trop encore.En fait il faut qu'il y ait quelconque caractere avant,ensuite un espace,puis ta chaine.
mais je vois pas comment faire le debut de la chaine,car j'avais fais (.*[:blank:]) mais ca a l'air de ne pas marcher
peut etre que je m'y prend mal
Marsh Posté le 02-06-2003 à 09:30:00
donc la chaine commence par un espace. il suffit donc de rajouter \s au début de la chaine.
mais ce que tu me dis n'est pas cohérent avec le fait d'avoir des url en début de post. Il faudrait plutôt éviter tous les caractères spéciaux qui sont repris dans les autres regexp.
Marsh Posté le 02-06-2003 à 10:45:49
gizmo a écrit : donc la chaine commence par un espace. il suffit donc de rajouter \s au début de la chaine. |
pourquoi c'est incoherant?
Si le gars cherche un site,ou quelque et qu'on lui reponde seulement avec une url,ben ca marche.
Mais bon il y surement une meilleur solutions.
Marsh Posté le 03-06-2003 à 23:04:29
gizmo a écrit : non, mais bon, joce et les regexp... |
ton truc ne vérifie pas si c'est a la suite d'un mot, ds une image, en debut de post ...
Marsh Posté le 03-06-2003 à 23:19:46
gizmo a écrit : je vois pas bien l'intérêt de ca: ( |\r\n|\n|\r|:| en début de regexp. |
Peut etre tordu, mais c'est fonctionnel dans tous les cas ...
j'ai galéré a tester
et le debut de la regex, c'est tout simplememt que les scripts tournant sous win et linux interpretent différement le \n ...
Marsh Posté le 01-06-2003 à 12:43:09
qq m'avait donné sur un topic les regex qu'il utisait,mais je n'arrive pas a les faires marcher
$search = array(
"/\[img\](http|https|ftp|mms)://(\S+)\[/img\]/si",
"/\[center\](.+?)\[/center\]/si",
"/\[left\](.+?)\[/left\]/si",
"/\[right\](.+?)\[/right\]/si",
"/\[justify\](.+?)\[/justify\]/si",
"/\[g\](.+?)\[/g\]/si",
"/\[i\](.+?)\[/i\]/si",
"/\[s\](.+?)\[/s\]/si",
"/\[X\](.+?)/si",
"/\[url=(http|https|ftp|mms)://(.+?)\](.+?)\[/url\]/si",
"/\[url=(\S+)\](.+?)\[/url\]/si",
"/\[url\](.+?)\[/url\]/si",
"/\[code\](.+?)\[/code\]/si",
"/ /",
"/\[#(.+?)\](.+?)\[/#(.+?)\]/si",
"/( |\r\n|\n|\r|:|;)(http|https|ftp|mms)://([^ !\'\"()\r\n]+)/i",
"/( |\r\n|\n|\r|:|\(|\))www\.([^ !\'\"()\r\n]+)/i",
"/( |\r\n|\n|\r|:|;)([^ !\'\"()\r\n;:]+)(@)([^ !\'\"()\r\n;]+)(\.)([^ !\'\"()\r\n;]+)/i",
"/(\r\n)/"
);
$replace = array(
"<img src=\"\\1://\\2\" alt=\"\\1://\\2\" title=\"\\1://\\2\" />",
"<div align=\"center\">\\1</div>",
"<div align=\"left\">\\1</div>",
"<div align=\"right\">\\1</div>",
"<div align=\"justify\">\\1</div>",
"<b>\\1</b>",
"<i>\\1</i>",
"<u>\\1</u>",
"<li>\\1</li>",
"<a href=\"\\1://\\2\" target=\"_blank\" class=\"lientopic2\">\\3</a>",
"<a href=\"http://\\1\" target=\"_blank\" class=\"lientopic2\">\\2</a>",
"<a href=\"\\1\" target=\"_blank\" class=\"lientopic2\">\\1</a>",
"<table width=\"90%\" border=\"0\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"2\"><tr><td bgcolor=\"#FFFFFF\"><font face=\"Courier\" size=\"2\">\\1</font></td></tr></table>",
" ",
"<font color=\"\\1\">\\2</font>",
"\\1<a href=\"\\2://\\3\" target=\"_blank\" class=\"lientopic2\">\\2://\\3</a>",
"\\1<a href=\"http://www.\\2\" target=\"_blank\" class=\"lientopic2\">www.\\2</a>",
"\\1<a href=\"mailto:\\2@\\4\\5\\6\" target=\"_blank\" class=\"lientopic2\">\\2@\\4\\5\\6</a>",
" <br />"
);
j'utilise cela:
$reponse = preg_replace($search,$replace,$reponse);
et ca me marque plein de message d'erreur:
Warning: Unknown modifier '/' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'c' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'l' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'r' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'j' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'g' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier '\' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier '\' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier '/' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'r' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'r' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier 'c' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier '#' in c:\www\forum\topic.php on line 266
Warning: Unknown modifier '/' in c:\www\forum\topic.php on line 266
et ca continue....
vous voyez pas d'ou viens le probleme ?