regex me rajoute un espace en fin d'url

Eléphant du PHP | 119 Messages

18 janv. 2011, 19:15

bonjour,
j'ai un regex pour transformer mes url en liens cliquable, mais quand on poste une image j'aimerais que celle ci s'affiche avec le lien en dessous.

j'ai essayé comme ceci mais je pense que j'ai une erreur dans mon code, l'image s'affiche mais plus les url ..
$statut_resize = preg_replace('#http://[?a-z0-9._/=-]+#i', '<a href="$0" target="_blank">$0</a>',$statut_resize);
$statut_resize = preg_replace('#http://[?a-z0-9._/=-]+#i', '<img src="$0" width="100" height="100">',$statut_resize);
Modifié en dernier par olivxii le 19 janv. 2011, 00:29, modifié 2 fois.

Eléphant du PHP | 275 Messages

18 janv. 2011, 19:21

T'as réfléchis a ce que faisait ton code, avant de le tester ?

Eléphant du PHP | 119 Messages

18 janv. 2011, 19:33

effectivement j'ai du faire une boulette, en faite je voudrais que l'extention soit identifié (jpeg,png,jpg,bpm etc..) et que le lien reste affiché mais que l'image aussi .

devlop78
Invité n'ayant pas de compte PHPfrance

18 janv. 2011, 19:34

Moi je me prendrais pas la tête ... je testerais que la fin, du type #(\.jpg|\.jpeg|\.png|\.gif|)$#i

Bon après, un .php peut être une image, ainsi qu'un fichier sans extension ^^ Mais bon ... :D

Eléphant du PHP | 119 Messages

18 janv. 2011, 19:38

oui c'est ce que je veut, mais comment faire en sorte que cette image s'affiche ?

Eléphant du PHP | 119 Messages

18 janv. 2011, 20:32

bon en me penchant sur le probleme j'ai trouvé la solution ..
$statut_resize = preg_replace('#http://\S+?\.(?:jpg|png|gif)#i', '<br/><a href="$0" class="lienCommentaire" target="_blank"><img src="$0" width="150" height="100"/></a><br/>', $statut_resize);
$statut_resize = preg_replace('#(?<!<a href="|<img src=")http://\S+#i', '<a href="$0" target="_blank">$0</a>', $statut_resize);

j'aimerais bien que l'image s'ouvre ensuite dans une popup mais dans une taille plus grande ...
y a t il une fonction similaire pour les video ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 janv. 2011, 20:38

il n'existe pas de balise video en html 4, celle ci existe en html 5 mais bon je te déconseille de l'utiliser (encore en dev) )

il te faudra plutot t'orienter vers un player flsah / js / ce que tu veux pour afficher une vidéo. sinon juste le nom du fichier ^^


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 119 Messages

18 janv. 2011, 21:01

et pour pouvoir ouvrir l'image dans une popup au lieu d'une nouvelle page, j'ai essayé de mettre un script popup mais ca ne fonctionne pas..

Eléphant du PHP | 119 Messages

19 janv. 2011, 00:09

en faite j'ai un petit soucis, quand c'est une url du type youtube ca fonctionne mais si je met http://google.fr
cela apparait en http://google.fr /

avec un espace entre fr et slash de fin
comment supprimer le slash de fin

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2011, 00:13

il faut indiquer le chemin de l'image dans le lien de popup afin que la popup l'affiche. Au pire utilise les sessions et ouvrir l'image

Par exemple une variable de $_SESSION['image'][] qui contient les noms des images et l'on passe en paramètre la clef du tableau au lien pour ouvrir la pop up (par exemple window.open('pagequiaffichelesimages?php?img=12'); et dans pagequiaffichelesimages.php on affiche $_SESSION['image'][ $_GET['img'] ]).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 119 Messages

19 janv. 2011, 00:19

ok je pense avoir pigé, merci.

par contre j'ai edité mon mess au dessus car j'ai un soucis quand je rentre une url du type http://google.fr
il me rajoute en espace et un slash en fin d'url
ce qui donne http://google.fr / ce qui ne mene a rien alors que si je met http://www.youtube.com/watch?v=FVsitBUgFZA je n'est pas de slash a la fin et le lien part bien sur la page concerné.