Help à propos d'URL et de BBCode... edit : et de REG EX !

Help à propos d'URL et de BBCode... edit : et de REG EX ! - PHP - Programmation

Marsh Posté le 29-09-2004 à 11:03:17    

Bonjour,
 
voilà. J'ai un script que j'ai repris et adapté des forums PHPBB, qui transforme les balises [b] [img] etc en balises html appropriées. Mais j'ai aussi à côté de ça un script qui transforme les URL qui commencent par http:// en lien hypertexte, sans qu'elles doivent etre entourées des balises [url]...
 
malheureusement, j'ai un peu de mal à les faire cohabiter car ce dernier script modifie également les url qui sont entourées de [img], ce qui rend donc l'affichage impossible...
 
voici le code en question :  
 

Code :
  1. $texte = eregi_replace("(http://[^ )\r\n]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $texte);


 
comment puis-je le modifier pour qu'il n'agisse plus sur les url qui sont entourées de balises [img] ? :??:  
 
merci !


Message édité par Dawa le 29-09-2004 à 12:28:45

---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 11:03:17   

Reply

Marsh Posté le 29-09-2004 à 11:07:35    

me rappel plus le caractere d'exclusion [:boulax]
 
essaye
 

Code :
  1. (!(\[img\])http://[^ )\!([\/img\])\r\n]+)


 
vraiment pas sur


Message édité par Profil supprimé le 29-09-2004 à 11:07:42
Reply

Marsh Posté le 29-09-2004 à 11:31:02    

cool merci les images s'affichent !
 
par contre du coup les url se transforment plus ! :d


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 11:32:35    

\o/
 
pas tres doué en regex, faudrait voir avec les perleu [:antp:9]

Reply

Marsh Posté le 29-09-2004 à 11:38:42    

p'tain clair moi non plus, les trucs basiques ca va, mais là nan quoi :o
 
allez help svp [:itm]


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 14:38:30    

plz :o


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 14:58:55    

Je verrais bien un truc du genre :
(?<!\[img\])http:\/\/...
(trouve tous les "http://", non précédé de [img])
 
Une assertion négative c'est ça : (?<!le texte)

Reply

Marsh Posté le 29-09-2004 à 15:01:06    

Au fait, c'est la syntaxe Perl. En PHP il faut l'utiliser avec preg_replace.

Reply

Marsh Posté le 29-09-2004 à 15:06:53    

Code :
  1. $texte = eregi_replace("((?<!\[img\])http://[^ )\r\n]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $texte);


 
comme ceci alors ?  :??:  
 
 
ca me donne une erreur sur la page affichée :
 

Code :
  1. Warning: eregi_replace(): REG_BADRPT:wrepetition-operator operand invalid in f:\www\shootme\fonctions.php on line 101
  2. Warning: eregi_replace(): REG_BADRPT:wrepetition-operator operand invalid in f:\www\shootme\fonctions.php on line 101
  3. Warning: eregi_replace(): REG_BADRPT:wrepetition-operator operand invalid in f:\www\shootme\fonctions.php on line 101
  4. ...


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 15:17:59    

Non, avec preg !
Comme ça (je viens de tester ça marche :)) :

Code :
  1. $texte = preg_replace("/(?<!\[img\])(http\:\/\/[^ \)\r\n]+)/", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $texte);


Message édité par kalex le 29-09-2004 à 15:18:17
Reply

Marsh Posté le 29-09-2004 à 15:17:59   

Reply

Marsh Posté le 29-09-2004 à 16:57:41    

merci ! :d
 
mais euh... maintenant les images s'affichent plus, je crois que le script modifie qd meme ce qui est précédé de [img] :/  
 
http://masterdawa.dyndns.org/shootme/


Message édité par Dawa le 29-09-2004 à 16:58:12

---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 29-09-2004 à 17:06:00    

Non non. :o
Les liens (non précédés de [img] donc) doivent être transformé avant de transformer les images, sinon, ton lien vers l'image n'est plus précédé de [img] et ça marche pas. :/

Reply

Marsh Posté le 29-09-2004 à 18:02:11    

ah ouais super, un grand merci ! [:prosterne]
 


---------------
SHOOT ME AGAIN WEBZINE
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed