Использование PHP для сбора изображения по указанному URL и сохранения его в базе данных - PullRequest
0 голосов
/ 08 июня 2011

Как правило, я хочу ввести URL-адрес и затем импортировать изображение с этим URL-адресом в базу данных.

Вот код, который мне близок, но альтернативы приветствуются.

Если я пытаюсь сохранить $ image в базе данных как BLOB, это приводит к ошибке.

<?php



class wSpider
{
    var $ch; /// going to used to hold our cURL instance
    var $html; /// used to hold resultant html data
    var $binary; /// used for binary transfers
    var $url; /// used to hold the url to be downloaded

    function wSpider()
    {
        $this->html = "http:/";
        $this->binary = 0;
        $this->url = "";
    }


    function fetchPage($url)
    {
        $this->url = $url;
        if (isset($this->url)) {
            $this->ch = curl_init(); /// open a cURL instance
            curl_setopt ($this->ch, CURLOPT_RETURNTRANSFER, 1); // tell cURL to return the data
            curl_setopt ($this->ch, CURLOPT_URL, $this->url); /// set the URL to download
            curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true); /// Follow any redirects
            curl_setopt($this->ch, CURLOPT_BINARYTRANSFER, $this->binary); /// tells cURL if the data is binary data or not
            $this->html = curl_exec($this->ch); // pulls the webpage from the internet
            curl_close ($this->ch); /// closes the connection
        }
    }
}

$mySpider = new wSpider(); //// creates a new instance of the wSpider
$mySpider->binary = 1; /// turns on the binary transfer mode
$image = $mySpider->fetchPage("http://static.php.net/www.php.net/images/php.gif");

?>

1 Ответ

5 голосов
/ 08 июня 2011

Тебе не нужны все эти вещи.

Вы можете сделать: $image = file_get_contents($url);

А потом pdo::prepare("INSERT INTO img (?, ?)");

...