Convertir les URL en liens cliquables - PHP - Programmation
Marsh Posté le 07-06-2006 à 12:51:18
ReplyMarsh Posté le 07-06-2006 à 14:20:57
Merci pour l'info, mais comment puis-je combiner mon code avec cette fonction ?
J'ai essayé la fonction toute seule et elle marche, mais je n'ai plus mes retours à la ligne.
De plus, avec cette fonction, si j'ai une URL longue, du style http://www.monsite.com/aaaaaa/bbbbb/cccc/ddd.html, il me met le lien que sur http://www.monsite.com et pas sur toute l'URL.
Et l'URL n'est pas coupée, donc cela décale mon design.
Marsh Posté le 07-06-2006 à 17:38:13
En fait, j'ai trouvé comment avoir le lien sur toute l'URL à http://www.expreg.com/voir63.
Et je l'ai mis comme cela :
Code :
|
Mais maintenant, comment puis-je lui dire de :
1) garder les retours à la ligne, s'il y en a
2) appliquer une césure sur une URL trop longue
Est-il possible de combiner 2 fonctions et si oui comment.
J'ai également trouvé la fonction pour la césure à cette adresse : http://www.expreg.com/voir62
Mon problème est que je ne sais pas comment je peux combiner ces 2 fonctions.
Pouvez-vous m'éclairer ?
Merci d'avance
et merci également à zapan666 pour le lien qui m'a permis d'y voir plus clair !
Marsh Posté le 07-06-2006 à 18:03:24
Code :
|
Bon, ce n'est qu'une idee mais essaye ca.
Je me base sur le fait que dans la doc c'est ecrit :
Citation : The behavior of this function is almost identical to preg_replace() |
http://uk.php.net/manual/en/functi [...] llback.php
Car le truc qui me pose probleme, c'est les parametres : si on peut les passer en tableau ou pas.
Si ca marche, met un p'tit message, ca peut m'interesser
Marsh Posté le 07-06-2006 à 18:57:52
Merci zapan666,
Mais malheureusement cela ne marche pas... Dommage.
Cela ne donne pas d'erreur, mais les infos du champ en question ne s'affichent plus...
Marsh Posté le 07-06-2006 à 21:56:37
non mais en fait, je me suis trompé dans mon exemple. (tu aurais du avoir un warning, car je passais pas $out comme parametre...)
J'ai trouvé quelque chose qui a l'air de bien marché :
Code :
|
Marsh Posté le 07-06-2006 à 23:14:02
Super !!!
zapan666, un très grand MERCI, ça marche !!! (sauf si on a uniquement le www. et pas le http:// devant).
J'ai aussi ajouté le echo qui manquait à la ligne 19.
Et pour cette ligne 19, j'ai mis le code suivant, car je voulais garder les retours à la ligne, mais je ne suis pas sûre que ce soit correct
Code :
|
ça marche, sauf certaines fois ou j'ai des <br qui se rajoutent dans le code, s'il y a un retour à la ligne juste après l'URL.
Est-il possible de corriger cela ?
Juste encore une petite chose qui me pose un problème :
Tout fonctionne correctement si j'affiche uniquement une fiche à la fois, mais si je veux afficher 2 fiches ou plus sur la même page, là il y a un problème et la page ne s'affiche pas correctement. Le tableau (mon code se trouve dans un tableau bien sûr) est décalé. La 1ère fiche sort bien, mais la 2ème n'est pas entière et s'arrête juste avant l'endroit où j'ai mis mon code. Le tableau n'est pas complet.
Une idée de ce qui provoque ce problème ?
et encore 1000 x MERCI...
Marsh Posté le 07-06-2006 à 23:35:26
Tu as peut être un espace en trop avant ou après dans ton champ commentaire
Code :
|
note :
Code :
|
génère une erreur, je pige pas trop pourquoi...
\o/ 3-1 pour la France \o/
Marsh Posté le 07-06-2006 à 23:46:13
Non, en fait le problème ne vient pas de la ligne avec les commentaires.
Je m'en suis rendue compte après avoir fait plusieurs tests.
J'ai édité mon précédent message, car je me suis apperçue que c'était si l'on affichait plusieurs fiches en même temps que l'on avait le problème.
Marsh Posté le 08-06-2006 à 00:23:30
zapan666 a écrit : Tu n'enchaine pas les fonctions dans le bon ordre je pense
|
Ca ne marche pas non plus et en plus cela me donne une page blanche.
Mais en fait ce n'est pas le nl2br qui pose problème, car j'ai essayé sans, en mettant juste le code
Code :
|
et j'ai aussi le problème. Le tableau est tronqué s'il y a plus d'une fiche...
Est-ce la function pouet1 qui pose un problème, car avec plus d'une fiche, elle est répétée ?
Et pourtant on est si prêt du but...
Marsh Posté le 08-06-2006 à 00:41:37
zapan666 a écrit : Tu peux fournir un exemple où ça ne marche pas ? |
Je n'ai qu'une URL locale pour l'instant. Mais je peux poster le code, si besoin.
Je me disais qu'il faudrait peut-être que je mette cette fonction dans un include à part qui ne soit pas directement dans la page.
Mais je ne sais pas trop comment faire... et surtout si cela a un sens.
Marsh Posté le 08-06-2006 à 10:25:43
C'est surtout le
Citation : et j'ai aussi le problème. Le tableau est tronqué s'il y a plus d'une fiche... |
C'est quoi le tableau ? C'est quoi ces fiches ?
Marsh Posté le 08-06-2006 à 13:01:19
Alors voici comment ça marche :
- j'ai une page avec un formulaire que les internautes peuvent remplir et les données sont enregistrées dans la BD
- j'ai une page "search" pour faire une recherche par mot clé
- j'ai une page "resultats" qui affiche tous les résultats de la recherche avec une case à cocher pour chaque donnée
- j'ai une page "afficher" qui affiche les "fiches ou les données" en question. Il y a 2 possibilités :
a) dans ma page de résultats, si je clique sur l'un des liens, seule la fiche choisie est affichée
b) dans ma page de résultats, si je coche plusieurs cases, la page "afficher" met toutes les fiches sur la même page, les unes sous les autres.
Voici la partie du code en question de ma page "afficher.php"
Code :
|
Marsh Posté le 08-06-2006 à 14:30:26
Pour afficher 1 seule fiche, il n'y a pas de problème, par contre, si on en a plusieurs sur la même page, la 1ère fiche est OK et la 2ème pose problème. Le tableau de la 2ème fiche est tronqué et le code HTML s'arrête après la ligne 27 <td width="80%">. Plus rien après...
Les autres fiches ne sont pas affichées.
On n'est pas loin de la solution... Mais voilà, où est-ce que cela bloque et pourquoi...
Marsh Posté le 08-06-2006 à 14:36:38
ahaha
je sais
Ton code est pas bien structure du tout.
Tu fais la definition d'une fonction dans une boucle : la premiere fois ca passe. La deuxieme fois, ca doit surrement gueule car PHP ne pige pas pourquoi tu redefini une fonction qui existe deja... (Regarde les sources HTML : je suis sur que tu as une erreur de PHP ! )
donc pour organiser tout ca, essaye de separer la presentation (le code HTML) et la partie traitement (PHP), par exemple en mettant les fonctions en debut de fichierm et le HTML a la fin, genre :
Code :
|
NOTE :
Evite <?=, en effet, sur certain systeme c'est desactive donc utilise <?php echo a la place plutot
Marsh Posté le 08-06-2006 à 18:59:09
Waouuuu super, ça marche. C'est cool. 1000 x MERCI
Pour résoudre le problème de <BR>, j'ai mis
Code :
|
et maintenant c'est OK.
Le seul truc qui ne fonctionne pas c'est si on a une URL commençant par www sans le http:// devant.
Il ajoute le lien, mais il n'ajoute pas le http:// devant et le lien ne marche pas, puisqu'il donne un truc du genre : http://www.monsite.com/repertoire/www.monlien.com
Marsh Posté le 09-06-2006 à 10:26:12
Uhm c'est plus ou moins normale, mais je sais pas trop comment pouvoir gerer ca.
Car tu as deux regex : un pour les www.adresse.com et un autre pour les http://www.adresse.com et dans la fonction pouet, le http:// n'est pas rajoute.
Mais le truc c'est que je ne sais pas comment tu peux savoir quand rajouter le http://
(au pire tu fais deux appel a preg_replace_callback : la 1er fois avec une regex et la fonction pouet1 la seconde fois avec l'autre regex qui intercepte les www.adresse.com et qui rajoute les www en utilisant une autre fonction de callback comme pouet2 par exemple)
Marsh Posté le 07-06-2006 à 12:36:13
Bonjour,
Je viens de découvrir ce forum et j'espère que l'un de vous pourra m'aider, car cela fait plusieurs semaines que j'essaie de trouver une solution, mais sans succès.
J'aimerais convertir automatiquement les URL (entrées dans des textarea) en liens cliquables dans ma page details.php.
Voici le code que j'ai mis dans ma page detail.php pour afficher l'un des champs:
J'ai mis nl2br, car je voulais garder les retours à la ligne entrés dans le formulaire
Mais comment puis-je lui dire qu'il convertisse les URL en lien cliquable ?
J'ai vu qu'on pouvait le faire avec eregi_replace, mais je ne sais pas où je dois le mettre et comment
Il faut aussi prendre en considération que certaines URL seront très longues, dont il faudrait les couper, pour éviter que cela décale tout le design.
J'ai essayé de mettre
qui fonctionne, mais je pense que cela ne marchera plus si je convertis les URL en liens cliquable, car le <BR> posera problème.
Pouvez-vous m'aider ?
Merci d'avance et A+