Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   eregi_replace (http://www.ndfr.net/forums/showthread.php?t=1825)

Magi-X 21-04-2003 11:37

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 ???

Kaspof 21-04-2003 13:16

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

Kaspof 21-04-2003 14:34

Quote:

j'aimerais bien comment vous faites pour ajouter des liens dans un news.
C'est toujours pas français, mais bon :p

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?

Matt 21-04-2003 15:51

$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 ;-)

rog62 21-04-2003 15:52

Pas certain que cela va l'aider ;)

Kaspof 21-04-2003 16:21

Quote:

Provient du message de Matt
$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 ;-)

Evidemment, si c'est un truc technique... chsui plus à la hauteur :(

Matt 21-04-2003 16:53

Quote:

Provient du message de rog62
Pas certain que cela va l'aider ;)
Bah à la rigueur, il a pas besoin de comprendre ;-)
Il suffit qu'il fasse un copier coller ...

Magi-X 21-04-2003 18:02

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 !!!

Matt 21-04-2003 18:17

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);

Magi-X 21-04-2003 18:26

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:

Matt 21-04-2003 19:17

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);

Magi-X 21-04-2003 19:58

c'est tres gentil ca de ta pars ;)

Magi-X 25-05-2003 18:00

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?

Matt 25-05-2003 21:38

Euh ... Là je vois aucune explication logique ... Théoriquement, il devrait tout remplacer :-/

Magi-X 25-05-2003 22:27

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 ?

Matt 25-05-2003 22:43

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);
}

Magi-X 25-05-2003 23:32

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

Matt 26-05-2003 14:10

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);

Magi-X 26-05-2003 16:41

merciiii :D

tes quand meme gentil toi hein, hooh jte di jdevien amoureux la :p

Matt 26-05-2003 17:25

C'est pas de la gentillesse ... Plutôt de la pitié :p

Magi-X 17-06-2003 14:46

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']);

Matt 17-06-2003 16:31

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:

Magi-X 17-06-2003 16:38

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

Magi-X 17-06-2003 16:44

le deuxieme fonctionne pas! le premier oui!

Magi-X 17-06-2003 16:49

il nafiche rien quand je fais mofidier !

Matt 17-06-2003 18:27

Quote:

Provient du message de Magi-X
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

>> Ben dans ta base, tu stockes en BBCODE, et tu passes en HTML au moment de l'affichage ... comme ça pas de problème pour l'édition ...

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);

Magi-X 17-06-2003 18:36

Quote:

Provient du message de Matt
>> Ben dans ta base, tu stockes en BBCODE, et tu passes en HTML au moment de l'affichage ... comme ça pas de problème pour l'édition ...


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.