[PHP/MySQL] Afficher les liens dans les messages. [Résolu/Fermé]

Signaler
-
 Utilisateur anonyme -
Bonjour,
je suis en train de développer un petit forum en PHP/MySQL.
Et là je suis face à un petit problème que j'arrive pas à résoudre.
Je m'explique.
Quelqu'un se connecte et veut poser une question sur le forum.
Si dans sa question il met un lien genre www.google.fr, ça insère dans la base de données sans problème.
Mais, quand j'affiche le message qu'il a posté, le lien n'est pas reconnu comme étant un lien : on ne peut pas cliquer dessus.
Comment faire pour que le lien s'affiche comme un lien hypertexte ? Y'a-t-il une fonction php pour ça ?

Par exemple, si j'écris " https://www.google.fr/?gws_rd=ssl ", vous voyez un lien. Vous pouvez cliquer dessus.
Comment faire pareil ?
Merci pour votre aide ! ^^

5 réponses

Messages postés
289
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2012
42
tu peut faire un truc du style

<a href="https://www.google.fr/?gws_rd=ssl">http://www.google.fr</a>

et ca ca marchera
Erf ...
Pour faire ça de manière automatique, il faut procéder aux expression régulières :
Si une chaine est de la forme "http://domaine/" il faut remplacer par "<a href=url>url</a>".
C'est ce qui me semble être la piste à suivre.

Mouais, c'est malheureusement bien ce que je pensais... J'essayais de me renseigner pour voir si par hasard, il n'y avait pas une fonction qui le faisait... Ca m'aurait éviter la manipulation de chaînes...
Si vous avez d'autres idées, je suis toute ouïe ! ^^

En tous cas merci de votre aide !
Messages postés
29
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
18 mai 2009

Essaie ce bout de code
ca marche chez moi!!

it's home made : c'est à dire fait à la maison

<?php

function lien($s){
return "<a href='$s'>$s</a>";
}

function est_lien($s){
$p = strpos($s, "http://");
if($p !== false) return true;
return false;
}

$s="https://www.google.com/?gws_rd=ssl mail mon adresse est http://www.mail.yahoo.fr";
$r = explode(" ", $s);
for($i = 0; $i < count($r); $i++){
if(est_lien($r[$i])) $r[$i] = lien($r[$i]);
}
echo implode(" ", $r);
?>


Merci à tous ! Problème résolu.
J'ai fait une recherche dans mon texte du tout ce qui commençait par http:// et j'ai mis <a href devant en fermant par </a> et ça marche !

Merci encore !