CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Lien/image

iPhoneEdge
iPhoneEdge
Niveau 10
25 mai 2014 à 22:33:34

Bonjour, désolé pour le titre peu explicite mais je ne savais que mettre.

Alors en fait sur mon site et plus particulièrement sur le forum j'ai un petit soucis, ce que je fais c'est que je detecte si ce que poste la personne c'est un lien et si c'est le cas je le mets dans un <a href="lien">lien</a> un peu comme pour jeuxvideo.com si je fais

https://www.jeuxvideo.com

Sauf que je veux ajouter un petit systeme de BBCODE donc ce que j'ai fais c'est si il mets un lien entre [img] et [/img] on affiche l'image comme ceci : <img src="lien"> sauf que vu qu'il détecte le lien comme un lien ça fait quelque chose comme

<img src="<a href="lien">lien</a>">

Et donc du coup ça n'affiche pas du tout l'image.

Voici la ligne de code que j'utilise pour transformer les liens en liens cliquable
$content = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/]
)/i","<a
target=\"_blank\" href=\"$1\">$1</A>",$content);

et pour transformer le [img]lien[/img] en image j'utilisais un preg_replace mais j'ai pas la ligne exact sous la main

Merci grandement de m'aider.

[Nolimitee]
[Nolimitee]
Niveau 7
26 mai 2014 à 12:59:48

Si j'ai bien compris, tu veux un système comme ça ?

$content = preg_replace('#\[img\](.+)\[/img\]#isU',
'<img src="$1" />',
$content);

Dans cet exemple la photo devra être dans la racine du projet (où est situé l'index).

iPhoneEdge
iPhoneEdge
Niveau 10
26 mai 2014 à 21:04:59

bah oui mais ça c'est ce que j'ai

sauf que ça donne

<img src="<a href="lien">lien</a>>

james-bond-0001
james-bond-0001
Niveau 6
26 mai 2014 à 22:46:47

Ba oui c'est normal car le visiteur entre les balises [img] il met un lien donc tes 2 regex s activent.
Il faut d abord que tu detectes s'il y a les balises [img] et dans ce cas la tu remplaces par <img src...>.

Arrange toi en gros pour que ta regex de lien ne prennent pas en compte les liens entre [img] :)

iPhoneEdge
iPhoneEdge
Niveau 10
27 mai 2014 à 20:52:43

Oui mais jusque là pas de soucis hein j'avais bien compris

sauf que je fais ça comment ?

Je suis vmrt nul en regex j'ai déjà tenté quelques truc mais ça me mets des erreurs à la con

deepblue
deepblue
Niveau 16
28 mai 2014 à 09:14:25

Je serais assez partisant de faire de l'analyse syntaxique plutôt que de la regex (en tout cas pour une partie du script). Si j'ai du temps aujourd'hui, je me pencherai sur la question.

deepblue
deepblue
Niveau 16
28 mai 2014 à 13:56:35

https://wall.deblan.org/x1b08/php/1/

Avant : https://wall.deblan.org/x1b09/texte/0/
Après : https://wall.deblan.org/x1b0a/html/0/

Surement pas le code le plus optimisé, mais il fonctionne et je n'ai pas le temps de faire mieux.

vava740
vava740
Niveau 10
28 mai 2014 à 14:54:53

Je plussoie deepblue pour l'analyse snytaxique.

Je me suis aussi un peu amusé pendant la pause midi :noel: , c'est l'implémentation la plus naïve qui m'est venue à l'esprit, mais ça reste relativement performant (y'a qu'un seul parcours de l'input).

https://wall.deblan.org/x1b0b/php/1/

Par contre le code est vraiment expérimental, y'a de beaux dépassements d'index possibles (voir les commentaires) qui devraient être vérifiés, et il faudrait faire une vraie gestion d'erreur. Et bien entendu découper ça en fonctions/méthodes, avec des helpers du genre next($num) qui retourne les $num caractères suivants, consume($num) qui incrémente le curseur de $num et retourne les $num caractères « consommés », et match() qui teste une regex contre la position du curseur (pour ce que j'ai en tête).

[Nolimitee]
[Nolimitee]
Niveau 7
28 mai 2014 à 21:36:48

Avec le code que je t'ai donné, ça fonctionne, tu dois te tromper dans le code HTML.

deepblue
deepblue
Niveau 16
29 mai 2014 à 18:46:43

@[Nolimitee] ( https://www.jeuxvideo.com/forums/1-30-7924687-1-0-1-0-php-lien-image.htm#message_7924793 ), tu n'as pas compris complétement le problème.

Beaterator
Beaterator
Niveau 8
31 mai 2014 à 17:25:07

Wow merci les gars je vais voir ça plus tard, là je suis pas sur l'ordi ou j'ai tous mes fichiers

merci beaucoup !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment