S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités A propos de 01net
931 utilisateurs connectés

le nom est le même sur le ftp mais pas pour php

ornite le 10 janvier 2009 à 15h58
Bonjour à tous,

Voila depuis 2 jours que je cherche un problème qui a mes yeux ne devrait pas exister.

J'ai une fonction de redimensionnement d'image à la voler
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'bmp');
$upload = "upload";

function gest_img($file,$larg,$haut){
global $upload; global $extensions_ok;
if(file_exists($upload.'/'.$file)){
if( in_array( substr(strrchr($file, '.'), 1), $extensions_ok ) ){
$infos_image = @getImageSize($upload."/".$file);
$ratio_haut = $infos_image[1] / $haut;
$ratio_larg = $infos_image[0] / $larg;
if ($ratio_haut > $ratio_larg){ $ratio = $ratio_haut; } else { $ratio = $ratio_larg; }
return '<a href="'.$upload.'/'.$file.'" target="_blank" style="border:0"><img src="'.$upload.'/'.$file.'" width="'.($infos_image[0] / $ratio).'" height="'.($infos_image[1] / $ratio).'"/></a>';
}else return 'Probléme avec la fonction de redimensionnement.'.$upload.'/'.$file;trace_com(8,$file);}
else return $upload.'/'.$file; }


Dans l'interface administrateur, à partir de tout un répertoire que je fais lister au fur et a mesure, toute les miniature s'affiche bien.

Mais lorsque je le met dans un texte avec du bbcode. Lors de la relecture correspondant à la fonction d'appel de l'image, la fonction fait son travail en la détectant mais là, l'image n'apparait plus.

$t = preg_replace("!\[image\](.+)\[/image\]!Usi",gest_img("$1",285,190),$t);



Exemple:
Chemin du fichier dans le ftp: upload/3.jpg
Renvoi de la fonction gest_img dans l'admin: <a href="upload/3.jpg" target="_blank" style="border:0"><img src="upload/3.jpg" width="75.2" height="50"/></a>
Renvoi de la fonction gest_img dans mes pages: upload/3.jpg

On peut donc voir que la fonction files_exists ne laisse pas passer sur les pages mais elle est bonne dans l'administration(et quand je la retire, c'est le reste qui ne marche pas et qui me donne des messages d'erreurs)

Comment cela se fait que le passage de la variable du preg_replace a la fonction fasse pas le redimensionnement ?

Merci pour vos prochaines idées.

-->Message édité par ornite le 10/01/2009 16:03:10<--
-------
[:jandre:1]Il faut mieux en mettre plus que moins [:KiWin:1]
ornite le 17 janvier 2009 à 00h03
Bonjour a tous,

Comme personne ne répond, je pense que le sujet est mal expliqué donc j'ai fait un petit condensé pour exposer mon problème.

Essayez le code suivant.
Pour cela, créé dans le même répertoire que le fichier php (avec le code ci-dessous) un dossier "image" et placez y une image appelé essai.jpg.

<?php

$upload = 'images';
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'bmp');

function gest_img($file,$larg,$haut){
global $upload; global $extensions_ok;
if(file_exists($upload.'/'.$file)){
if( in_array( substr(strrchr($file, '.'), 1), $extensions_ok ) ){
$infos_image = @getImageSize($upload."/".$file);
$ratio_haut = $infos_image[1] / $haut;
$ratio_larg = $infos_image[0] / $larg;
if ($ratio_haut > $ratio_larg){ $ratio = $ratio_haut; } else { $ratio = $ratio_larg; }
return '<a href="'.$upload.'/'.$file.'" target="_blank" style="border:0"><img src="'.$upload.'/'.$file.'" width="'.($infos_image[0] / $ratio).'" height="'.($infos_image[1] / $ratio).'"/></a>';
}else return 'Probléme avec la fonction de redimensionnement.'.$upload.'/'.$file;trace_com(8,$file);}
else return 'Le fichier :'.$file.' n\'hesiste pas'; }//'<a href="'.$upload.'/'.$file.'" style="border:0"><img src="'.$upload.'/'.$file.'" /></a>';}


//Affichage des bbcode:
function BBtags($t) {
//[img]
$t = preg_replace("!\[image\](.+)\[/image\]!Usi",gest_img("$1",285,190),$t);
//On retourne tout le message:
return $t;}

echo gest_img("essai.jpg",285,190);
echo BBtags("[image]essai.jpg[/image]");

?>


Si vous avez aucune image, c'est qu'il y a un problème de configuration.
Si tout va bien, vous devriez avoir les deux même images de la même taille.

Si vous avez le même problèmes que moi, vous avez la 1ére image et à coté c'est noté: "Le fichier :essai.jpg n'hesiste pas".
Pourquoi en passant par la fonction BBtags, ça ne marche plus ?

Merci pour vos prochaines réponses. :jap:

-->Message édité par ornite le 17/01/2009 00:06:32<--
-------
[:jandre:1]Il faut mieux en mettre plus que moins [:KiWin:1]
ornite le 19 janvier 2009 à 18h36
vous obtenez quoi ?
-------
[:jandre:1]Il faut mieux en mettre plus que moins [:KiWin:1]
ornite le 21 janvier 2009 à 16h27
J'ai trouvé, faut utiliser: preg_replace_callback et mettre variable[1] pour récupérer le contenu. :/
-------
[:jandre:1]Il faut mieux en mettre plus que moins [:KiWin:1]


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
Fictions
A lire sur 01men notre décryptage sur le succès des histoires de vampires.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.