![]() |
eregi_replace
salut,
j'aimerais bien comment vous faites pour ajouter des liens dans un news. On sais mettre le code html, mais c'est plus pratique comme ici avec [ URL = htt...]test[/ URL] . mais je supose que par apres vous faites qq chose avec le eregi_replace! J'ai essayer mais ca foire toujours !! Il y a pas qqun qui c me montrer le code ??? |
Je veux bien t'aider si je peux, mais d'abord je te propose d'éditer ton message pour qu'il puisse être compréhensible. :p
|
Quote:
Mais bon, pour mettre un lien dans un message (ou une news), il suffit de clicker sur le gros bouton intitulé "http://" qui est présent lorsque tu clickes sur "repondre". Si tu fais ça en réponse rapide, tu tapes l'adresse directement! http://www.newdimension-fr.net C'est ce que tu voulais savoir? |
$string = eregi_replace("\[url([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+?)\[\/url\]", "<a href=\"\\1://\\2\\3\">\\4</a>", $string);
Normalement ça devrait marcher, aux erreurs de syntaxe près ;-) |
Pas certain que cela va l'aider ;)
|
Quote:
|
Quote:
Il suffit qu'il fasse un copier coller ... |
Cela ne marche pas vraiment le code chez moi !!!
quand je tappe donc test et que je l'envoie dans ma base de donné: il me donne un warning: Warning: REG_BADRPT in Enregistrer.php on line 93 et j'ai fais copier coller du code !!! |
Effectivement, j'ai fait une ch'tite erreur ... Voilà ce qui arrive quand on teste pas ;-)
Voilà un code qui marche : $string = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", "<a href=\"\\1://\\2\\3\">\\4</a>", $string); |
merci matt, ca marche !!!
Je vais essayer d'etudier ton code pour ajouter encore ceci ds le tags html target="blank" et class="a" vais etudier pour le plaisir :rolleyes: |
Au cas où tu aurais des problèmes :
$string = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", "<a href=\"\\1://\\2\\3\" target=\"_blank\" class=\"a\">\\4</a>", $string); |
c'est tres gentil ca de ta pars ;)
|
salut matt, tu te rapelle que javais demandé comment faire pour remplacer les [URL= etc en code html ..... eh bien tu mavais donné ceci:
$news_main = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", "<a href=\"\\1://\\2\\3\" target=\"_blank\">\\4</a>", $news_main); et ceci fonctionne tant que je mettre pas 2fois un lien dans le news, car si c le cas le deuxiement foirera. Tu es sur que le code est optimal? |
Euh ... Là je vois aucune explication logique ... Théoriquement, il devrait tout remplacer :-/
|
bon ben on est pas sorti de lhoberge alors
ptete ke tu vois un truc ici dedans: $news_main = nl2br($news_main); $news_main = eregi_replace("\n", "", $news_main); $news_main = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", "<a href=\"\\1://\\2\\3\" target=\"_blank\">\\4</a>", $news_main); il faut p-e dabord remplacer les lien avant de faire le reste ? |
Je pense pas que l'ordre des eregi_replace influe sur quelque chose (au passage, je ne vois pas l'intérêt du premier, puisque la fonction nl2br supprime tous les \n ...)
Pour le eregi_replace, essaye peut-être comme ça : while (eregi("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", $news_main)) { $news_main = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\](.+)\[\/url\]", "<a href=\"\\1://\\2\\3\" target=\"_blank\">\\4</a>", $news_main); } |
ben non regarde ce ke ca donne -->
en tappent (g enlever le [ pour kil ne le trensforme po) URL=http://www.google]test[/URL] URL=http://www.google]test[/URL] URL=http://www.google]test[/URL] il donne --> test ca c un lien ki fonctionne [URL=http://www.google]test c'est tout ce kil met et ce nest pas un lien |
Ca y'est .. j'ai compris le problème ...
Ceci devrait marche : $news_main = eregi_replace("\[url=([[:alnum:]]+)://([^<[:space:]]*)([[:alnum:]#?/&=])\]([[:alnum:]#?/&= ]*)\[\/url\]", "<a href=\"\\1://\\2\\3\" target=\"_blank\">\\4</a>", $news_main); |
merciiii :D
tes quand meme gentil toi hein, hooh jte di jdevien amoureux la :p |
C'est pas de la gentillesse ... Plutôt de la pitié :p
|
g un nvx bleme, parce ke maintentant je dois faire linverse!!!
et j'ai quasi trouvé moi meme, mais ca fonctionne plus des kil y a deux lien dans le texte! le code: $news['news_main'] = eregi_replace("<a href=\"([^\\[]*)\" target=_blank>([^\\[]*)</a> ", "[ url=\\1]\\2[/ url]",$news['news_main']); |
Essaye comme ça dans le sens BBCODE => HTML (le preg marche mieux que le ereg) :
$string = preg_replace('/\[url\=(http|ftp|https)\:\/\/([a-z0-9\/_\.\-]*)\](.*)\[\/url\]/iU', "<a href=\"\\1://\\2\" target=\"_blank\">\\3</a>", $string); Et pour le sens HTML => BBCODE, utilise : $string = preg_replace('<a href=\"([^\\[]*)\" target=_blank>([^\\[]*)</a> /iU', '[ url=\\1]\\2[/ url]', $string); Par contre, je vois pas trop l'intérêt de la manip dans ce sens ... :confused: |
ben quand on modifie un message, faut bien que le code html pour les lien ce remette en BBCODE !
En tout ca jv une fois essayer ton code! merci |
le deuxieme fonctionne pas! le premier oui!
|
il nafiche rien quand je fais mofidier !
|
Quote:
Pour le deuxième, essaye comme ça : $string = preg_replace('/\<a href=(http|ftp|https)\:\/\/([a-z0-9\/_\.\-]*)\>(.*)\<\/a\>/iU', '\[url=\"\\1://\\2\"\]\\3\[\/url\]', $string); |
Quote:
Mouhahaha je suis con, en plus c'est trop logique, pffff hahaha jsuis cooooooooon, marci mattou! Je vais faire comme ca! looooooool jarrive po a le croire ! Moi ki me casse la tete a faire linverse! mouhaha ! :cry: jpeux tout modifier |
All times are GMT +2. The time now is 05:38. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.