2011-01-26 5 views
0

Je travaille sur un resizer d'image, pour créer des vignettes pour ma page. Le resizer fonctionne sur le principe d'inclure un lien DIRECT à l'image. Mais ce que je veux faire est de placer la variable PHP dans la chaîne d'URL, afin qu'elle pointe vers ce fichier et le redimensionne en conséquence.Passer une variable d'un fichier PHP à un autre

Mon code est le suivant:

<img src="thumbnail.php?image=<?php echo $row_select_property['image_url']; ?> 

Image Resize:

<?php 
    // Resize Image To A Thumbnail 

    // The file you are resizing 

    $image = '$_GET[image_url]'; 

    //This will set our output to 45% of the original size 
    $size = 0.45; 

    // This sets it to a .jpg, but you can change this to png or gif 
    header('Content-type: image/jpeg'); 

    // Setting the resize parameters 
    list($width, $height) = getimagesize($image); 
    $modwidth = $width * $size; 
    $modheight = $height * $size; 

    // Creating the Canvas 
    $tn= imagecreatetruecolor($modwidth, $modheight); 
    $source = imagecreatefromjpeg($image); 

    // Resizing our image to fit the canvas 
    imagecopyresized($tn, $source, 0, 0, 0, 0, $modwidth, $modheight, $width, $height); 

    // Outputs a jpg image, you could change this to gif or png if needed 
    imagejpeg($tn); 
    ?> 

Ce que je suis en train de faire est de passer sur la variable "image =" au script miniature. Au moment où je le passe par la chaîne d'URL, mais il ne semble pas charger le graphique.

Je vais essayer d'approfondir ce sujet plus, si vous avez des questions car je trouve cela un peu difficile à expliquer.

Merci d'avance.

+0

1. vous ne pouvez pas transmettre de variables entre les fichiers. 2. il n'y a pas de paramètre 'image_url' dans votre chaîne de requête. 3. '' $ _GET [image_url] ''literal contient la chaîne' $ _GET [image_url] 'dedans, ce qui est plutôt inutile –

Répondre

3

Modifier ce

$image = '$_GET[image_url]'; 

à

$image = $_GET['image']; 
+0

Vous pouvez utiliser' $ image = "$ _GET [image_url]"; 'à la place, pas que ce soit une bonne idée mais la différence entre "et" est que si vous utilisez "les variables intégrées sont étendues mais avec" c'est une chaîne littérale et aucune substitution de variable n'aura lieu. –

+0

@ David Mårtensson: Oui d'accord et je sais déjà. –

+0

assurez-vous d'avoir un nouveau PHP (> 5.2 => a [filter] (http://www.php.net/manual/fr/filter.installation.php)) sinon $ _GET peut être très dangereux. – Alfred

3
$image = '$_GET[image_url]'; 

devrait être

$image = $_GET['image']; 
6

Je soupçonne au moins une partie du problème est que votre existant ...

$image = '$_GET[image_url]'; 

... ligne crée une chaîne de texte plutôt que d'obtenir le contenu de la chaîne de requête 'image_url'. De plus, en passant le nom d'image "? Image =" dans la chaîne de requête, vous devez simplement utiliser "image", pas "image_url".

En tant que tel, changer cela ...

$image = $_GET['image']; 

... devrait au moins faire bouger les choses.

Questions connexes