Page 1 of 1

curl error

Posted: Sun Feb 14, 2010 6:24 pm
by maddali
This snippet uses cURL to get a graphic and display a thumbnail image on the page without saving it.

<?php

$url = $_GET['url'];

$url = str_replace("http:/","http://",$url);

$allowed = array('jpg','gif','png');
$pos = strrpos($_GET['url'], ".");
$str = substr($_GET['url'],($pos + 1));

$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

// Getting binary data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

$image = curl_exec($ch);
curl_close($ch);
// output to browser
$im = @imagecreatefromstring($image);

$tw = @imagesx($im);
if(!$tw){
// Font directory + font name
$font = '../../fonts/Austrise.ttf';
// Size of the font
$fontSize = 18;
// Height of the image
$height = 32;
// Width of the image
$width = 250;
// Text
$str = 'Couldn\'t get image.';
$img_handle = imagecreate ($width, $height) or die ("Cannot Create image");
// Set the Background Color RGB
$backColor = imagecolorallocate($img_handle, 255, 255, 255);
// Set the Text Color RGB
$txtColor = imagecolorallocate($img_handle, 20, 92, 137);
$textbox = imagettfbbox($fontSize, 0, $font, $str) or die('Error in imagettfbbox function');
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font , $str) or die('Error in imagettftext function');
header('Content-Type: image/jpeg');
imagejpeg($img_handle,NULL,100);
imagedestroy($img_handle);
}else{
if($str == 'jpg' || $str == 'jpeg')
header("Content-type: image/jpeg");
if($str == 'gif')
header("Content-type: image/gif");
if($str == 'png')
header("Content-type: image/png");
$th = imagesy($im);
$thumbWidth = 200;
if($tw <= $thumbWidth){
$thumbWidth = $tw;
}
$thumbHeight = $th * ($thumbWidth / $tw);
$thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight);
if($str == 'gif'){
$colorTransparent = imagecolortransparent($im);
imagefill($thumbImg, 0, 0, $colorTransparent);
imagecolortransparent($thumbImg, $colorTransparent);
}
if($str == 'png'){
imagealphablending($thumbImg, false);
imagesavealpha($thumbImg,true);
$transparent = imagecolorallocatealpha($thumbImg, 255, 255, 255, 127);
imagefilledrectangle($thumbImg, 0, 0, $thumbWidth, $thumbHeight, $transparent);
}
imagecopyresampled($thumbImg, $im, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $tw, $th);


if($str == 'jpg' || $str == 'jpeg'){
imagejpeg($thumbImg, NULL, 100);
}
if($str == 'gif'){
imagegif($thumbImg);
}
if($str == 'png'){
imagealphablending($thumbImg,TRUE);
imagepng($thumbImg, NULL, 9, PNG_ALL_FILTERS);
}

imagedestroy($thumbImg);
}
?>


However,when I tried to ececute it from localhost with the following command...
http://localhost/imageget.php?url=http: ... ippets.jpg

I get an error something like this...

Fatal error: Call to undefined function curl_init() in C:\wamp\www\imageget.php on line 12

Could somebody help me out with this....

Re: curl error

Posted: Sun Feb 14, 2010 8:28 pm
by flying_circus
maddali wrote:Fatal error: Call to undefined function curl_init() in C:\wamp\www\imageget.php on line 12

Could somebody help me out with this....
It doesnt look like you have curl installed.

check phpinfo() to see if curl is loaded.

Re: curl error

Posted: Sun Feb 14, 2010 11:35 pm
by maddali
I've modified the php.ini file and now I get a new problem which displays the url I've given in the adrress bar...any suggestions??

Re: curl error

Posted: Mon Feb 15, 2010 9:36 am
by maddali
I was successful to some extent with this code...When I tried executing the same code on Mac OS...it shows some broken image thumbnail without displaying the image in the url.verifying the log file it shows an image has been retrieved and sent to the server of the original file size.The same happens when I try to run that on IE and chrome but when executed on firefox it shows a blank white display with no broken thumbnail image....Is there anything that can be done with browser or any error in the code.

any help would be greatly appreciated.

Maddali

Re: curl error

Posted: Mon Feb 15, 2010 9:49 am
by Darhazer
comment the content-type header, and refresh the page
probably there is a notice/warning that breaks the image