TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   The Lounge (http://www.talkphp.com/lounge/)
-   -   Kidnapping files via URLs with cURL :) (http://www.talkphp.com/lounge/2790-kidnapping-files-via-urls-curl.html)

EyeDentify 05-09-2008 09:42 PM

Kidnapping files via URLs with cURL :)
 
Hello there :)

I´m playing around with cURL to learn some new things.

Anyway i just wanted to share a simple code snippet i came up with when playing around. Nothing revolutionary but handy.

I´t will ofcourse need optimization to fitt your individual needs.
But in my case i was looking for a way to "download" image files to my server and store them there as files.

And i could not use URL wrapers with the conventional ways because of secrity measures by my webhost. So i thought why not try to use cURL and to my suprise the code worked. And this code is just barebone.

You are welcome to leave some tips on improvement on this code.

Here goes nothing:
PHP Code:

<?PHP
// Set Target URL
$ch curl_init(\'http://www.talkphp.com/images/talkphp/talkphp_logo.jpg\');

// Set cURL options

curl_setopt($chCURLOPT_FRESH_CONNECT1);
curl_setopt($chCURLOPT_FORBID_REUSE1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);

// Change to TRUE for BINARY transfer
curl_setopt($chCURLOPT_BINARYTRANSFER1);

// in $result is our string with the return data
// we also execute the cURL
$result curl_exec($ch); 

curl_close($ch); // Closing connection

// create a file if note present for read/write
$handle fopen('random_img.jpg''w+');

// save data to a file on server
fwrite($handle$result);

// close the file
fclose($handle);

// see if the file works ?
echo('<IMG SRC="random_img.jpg" />');
?>

Remember my webhost does currently not use PHP5 so i could not use any of thoose CURLOPT_xxx options.

Should one use the BINARY option set to TRUE if your retrieving text files like HTML, PHP, XML and so on ?

Use my code improve it, or whatever you like :)

Good Luck!

/EyeDentify

Salathe 05-09-2008 11:20 PM

Thanks for posting up your code snippet! When simply using cURL to grab a file and save it to the local file system, there is the option to tell cURL to do that rather than making us do it with fwrite; that option is CURLOPT_FILE.

PHP Code:

<?php

// Initialize handlers
$ch curl_init(\'http://www.talkphp.com/images/talkphp/talkphp_logo.jpg\');
$fh fopen('misc.jpg''w+');

// Set cURL to save to a file (normally stdout)
curl_setopt($chCURLOPT_FILE$fh);

// Execute the request
curl_exec($ch);

// Close handlers
curl_close($ch);
fclose($fh);

// Display that sexy logo!
echo '<img src="misc.jpg" />';


EyeDentify 05-10-2008 09:03 AM

@Salathe

Thx for the feedback. :) i was unsure how to use that OPTION but i had it in my mind. So i went with fwrite.

Is there any advantage or disadvantage with the either alternatives ?

cheers :) have a nice weekend.


All times are GMT. The time now is 06:14 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0