Fairweb

Développement WordPress, WordPress Mu, BuddyPress

Trouver une image dans du code html et l’afficher redimentionnée

| 2 Commentaires

Ce qui m’a amenée à trouver cette combine était la contrainte suivante : récupérer la première image d’un billet dans WordPress et l’afficher sur la home avec des dimensions maximum précises. Et bien sûr, il fallait que ça marche sous Firefox, IE6 et IE7.

La première chose à faire est de créer la fonction qui permettra de redimentionner l’image. De plus, on s’en servira ailleurs donc autant en faire une fonction. Vous pouvez l’améliorer pour paramétrer les alignements (on peut toujours faire mieux bien sûr) :

[source:php]function reduire($image, $taillemax) {
$taille = getimagesize(« $image »);
$max=$taillemax;//taille max autorisée en pixels
$h_i = $taille[1];
$w_i = $taille[0];
if($h_i >$max)
{
$convert=$max/$h_i;
$h_i=$max;
$w_i=ceil($w_i*$convert);
}
$image= »\"\"« ;
return $image;
}[/source]

Maintenant, retrouvons les images dans le billet et affichons la première image trouvée redimentionnée :

if ( preg_match_all ('/src="[^<>]*(.gif|.png|.jpg|.jpeg)/i', $contenu_du_billet, $out)) // $out va retourner un tableau contenant toutes les url de l'image mais il gardera xsrc=" devant, $contenu_du_billet est une variable que vous aurez créée au préalable qui contient en fait le texte html concerné
{
$nouvelle_image = reduire(str_replace('src="'," mce_src="'," ",urldecode($out[0][0])),100); // on vire xsrc=" dans la première image pour récupérer seulement l'url de l'image et on lui applique la fonction reduire() pour avoir le code html d'affichage de l'image
echo $nouvelle_image;
}

NB. Bon, j’ai un souci pour afficher le code que mon WP interprête comme du html mais je suppose que vous avez tout compris ;)

Share

Auteur : Fairweb

Développement php/mysql, conception de sites internet

2 Commentaires

  1. merci, superbe « combine »
    et dire que c’est à cause de moi que tu as du chercher cela…..

    Polygonis, concilions l’informatique et l’éthique

  2. Tiens, j’écrirais bien un article sur Polygonis moi. A moins que tu ne l’écrives toi-même, ici-même, pour moi-même ?

Laisser un commentaire

Champs Requis *.

*