IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème de passage de paramètre [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut problème de passage de paramètre
    Bonjour,
    je veux redimensionner une image distante avant de l'afficher sur mon site.

    voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
     
    function getRow($sequence){
            $result = explode("</table>", $sequence);
            return $result;
    }
    function getPicture($sequence){
    eregi ("background=(.*) style=" , html_entity_decode($sequence)  , $result);
            return $result;
    }
    function redimensionnement($file,  $returnedFile){
    $x = 200;
    $y = 100; # Taille en pixel de l'image redimensionnée
    $size = getimagesize($file);
     
    if ( $size) {
     
    if ($size['mime']=='image/jpeg' ) {
    $img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    # création de la miniature
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
     
    // copie de l'image, avec le redimensionnement.
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
     
    imagejpeg($img_mini, $returnedFile);
     
    }
    elseif ($size['mime']=='image/png' ) {
    $img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    # création de la miniature
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
     
    // copie de l'image, avec le redimensionnement.
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
     
    imagepng($img_mini, $returnedFile);
    }
    elseif ($size['mime']=='image/gif' ) {
    $img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    # création de la miniature
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
     
    // copie de l'image, avec le redimensionnement.
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
     
    imagegif($img_mini, $returnedFile);
    }
    }
    } 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <title></title>
    </head>
    <?php
    $result[0] = str_replace("&nbsp;", " ", $result[0]);
    $ventes = getRow($result[0]);
    foreach ($ventes as $contenu) {
    $resultat = getPicture($contenu);
    $resultat = str_replace("background=\"", "", $resultat);
    $resultat = str_replace("\" style=", "", $resultat);
    $resultat = str_replace("\"background-repeat:no-repeat\" >","", $resultat);
    redimensionnement($resultat[0], "temp.jpg");
    echo "<img src=\"http://monsite/exemple/temp.jpg\" alt=\"\" style=\"\"/><br />"; 
    }
    ?>

    Mon problème est le suivant :

    - une erreur survient avant l'affichage de l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: getimagesize("http://images2.bazarchic.com/images2/ban_on/28380.jpg"<tr><td height="92" colspan="3"> </td></tr><tr><td colspan="2" rowspan="2"> </td> <td width="205" height="30" align="center" valign="top") [function.getimagesize]: failed to open stream: No such file or directory in http://monsite/exemple/myFile.php on line 26
    alors que l'url existe et renvoie bien une image.

    - si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redimensionnement($resultat[0], "temp.jpg");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redimensionnement("http://www.bazarchic.com/ventes-privees-en-cours.php", "temp.jpg");
    Ca fonctionne...

    Auriez-vous une idée?

    Indices:
    Lorsque je fais , j'obtiens bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "http://images2.bazarchic.com/images2/ban_on/28380.jpg"
    Problème d'encodage ? de Html Tag ?
    j'ai essayé de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redimensionnement(strip_tags($resultat[0]), "temp.jpg");
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redimensionnement($resultat[0], "temp.jpg");
    mais j'ai la même erreur sans les tags d'après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: getimagesize("http://images2.bazarchic.com/images2/ban_on/28380.jpg") [function.getimagesize]: failed to open stream: No such file or directory in http://monsite/exemple/myFile.php on line 26
    Help please.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    j'obtiens bien "http://images2.bazarchic.com/images2/ban_on/28380.jpg"
    Tu obtiens ça parce que dans ton navigateur, tu ne vois pas la suite de balises qui trainent derrière, tu peux le confirmer en regardant la source de la page.

    As-tu fais le test de faire directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getimagesize("http://images2.bazarchic.com/images2/ban_on/28380.jpg");
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Tu obtiens ça parce que dans ton navigateur, tu ne vois pas la suite de balises qui trainent derrière, tu peux le confirmer en regardant la source de la page.
    Il n'y a pas de balise cachées dans le code source.

    As-tu fais le test de faire directement
    Oui, cela fonctionne normalement : pas de message d'erreur.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il n'y a pas de balise cachées dans le code source.
    Pour moi, il est sur que si
    donne
    Warning: getimagesize("http://images2.bazarchic.com/images2/ban_on/28380.jpg"<tr><td height="92" colspan="3"> ....

    c'est que $file contient bien tout ce merdier ; ce n'est pas PHP qui l'ajoute.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Merci pour tes réponses
    Pour moi, il est sur que si
    Je viens de faire un copié/collé du code source (Sauf pour le nom de mon site! ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
     
     
     
     
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
    </head><body>"http://images2.bazarchic.com/images2/ban_on/28380.jpg"   <br>
    <b>Warning</b>:  getimagesize("http://images2.bazarchic.com/images2/ban_on/28380.jpg"&lt;tr&gt;&lt;td height="92" colspan="3"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" rowspan="2"&gt; &lt;/td&gt; &lt;td width="205" height="30" align="center" valign="top") [<a href="function.getimagesize">function.getimagesize</a>]: failed to open stream: No such file or directory in <b>http://monsite/exemple/exemple.php</b> on line <b>26</b><br>
     
    <img src="http://demo.web4me.fr/tennis/php/temp.jpg" alt="" style=""><br>"http://images2.bazarchic.com/images2/ban_on/28505.jpg"   <br>
    <b>Warning</b>:  getimagesize("http://images2.bazarchic.com/images2/ban_on/28505.jpg"&lt;tr&gt;&lt;td height="92" colspan="3"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" rowspan="2"&gt; &lt;/td&gt; &lt;td width="205" height="30" align="center" valign="top") [<a href="function.getimagesize">function.getimagesize</a>]: failed to open stream: No such file or directory in <b>http://monsite/exemple/exemple.php</b> on line <b>26</b><br>
     
    <img src="http://monsite/exemple/temp.jpg" alt="" style=""><br>"http://images2.bazarchic.com/images2/ban_on/28491.jpg"   <br>
    Et on a bien la première ligne du body correspondant au print_r($resultat[0]); qui est :
    "http://images2.bazarchic.com/images2/ban_on/28380.jpg"

    Pourrait-il y avoir des caractères non affichés avec print_r ?
    Je crois que je vais devenir fou !

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Regarde la source avec firebug pour être sur.
    J'ai déjà surpris firefox ou IE à afficher une version remaniée de la source réelle quand l'agencement HTML n'était pas cohérent.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 19
    Dernier message: 09/06/2006, 10h03
  2. Problème de passage de paramètres à une procedure
    Par momo62 dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 22/12/2005, 15h22
  3. [template] problème de passage de paramètres
    Par vinny_the_true dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2005, 01h15
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo