|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 62712.7123 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
24.09.2008, 14:40
|
#1
|
white powder
Регистрация: 29.04.2007
Сообщений: 2,692
Бабло: $370670
|
Подскажите по php - запрос пикчи по урлу.
Особо с ним никогда не работал, но тут понадобилось мелкоскриптик сообразить.
Надо jpeg считывать в память. При это настройки апача/php изменить нельзя.
пробовал такую конструкцию
PHP код:
$im=imagecreatefromjpeg('http://www.google.com/adsense/static/en_US/images/logo_main.gif');
и такую
PHP код:
$im=file_get_contents('http://www.google.com/adsense/static/en_US/images/logo_main.gif');
и на обоих выдает ошибку
Цитата:
URL file-access is disabled in the server configuration in /home/domains/...
|
есть какой-то способ более коректно это дело обойти? Curl там подключен.
|
|
|
24.09.2008, 14:48
|
#2
|
Senior Member
Регистрация: 04.04.2007
Сообщений: 601
Бабло: $7700
|
если не можешь перенастроить пхп чтобы разрешить качать файлы с удаленных хостов, то остается переписать на сокетах
типа так:
Код:
$data = ""; // tyt budet JPEG
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /picture.jpg HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$data.= fgets($fp, 128);
}
fclose($fp);
}
а так тебе надо в php.ini добавить строчку
allow_url_access = 1
(кажется так)
|
|
|
24.09.2008, 14:50
|
#3
|
white powder
Регистрация: 29.04.2007
Сообщений: 2,692
Бабло: $370670
ТС -->
|
ТС
Супер-спасибо! Щас попробую по этому сокс-варианту..
|
|
|
24.09.2008, 15:07
|
#4
|
white powder
Регистрация: 29.04.2007
Сообщений: 2,692
Бабло: $370670
ТС -->
|
ТС
Вот чето считывает, но, пикчу саму ломает походу.
Сделал вывод через echo переменной $data, вот че в начале идет
Цитата:
HTTP/1.1 200 OK Date: Wed, 24 Sep 2008 11:03:40 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Fri, 05 Sep 2008 20:51:01 GMT ETag: "21ce19-cfc5-3a269740" Accept-Ranges: bytes Content-Length: 53189 Connection: close Content-Type: image/jpeg яШяаJFIF``яЫC $.' ",#
|
как то хттп-заголовок можно убрать?
Потому как это
PHP код:
header('Content-type: image/jpeg');
imagejpeg($data);
потом не выводит картинку.
|
|
|
24.09.2008, 15:21
|
#5
|
Профи Интернет коммерции
Регистрация: 04.04.2007
Сообщений: 2,344
Бабло: $456535
|
советую бинарный курл
етот под винду под уникса перенастроить тока путь )
exec("c:/curl/curl.exe http://url/captcha.php -b c:/cookie.txt -c c:/cookie.txt -k -o c:/home/domain/captcha1.png",$results,$return);
где url/captcha.php - ето путь откуда кочать - куки ето где хранить куки и считывать куки если пикча оттдается с помощью кук
ну и куда сохранить последнее
выполнит тока впуть
|
|
|
24.09.2008, 15:23
|
#6
|
Профи Интернет коммерции
Регистрация: 04.04.2007
Сообщений: 2,344
Бабло: $456535
|
можно даже поддержку прокси добавить тупо
-x host ort
из плюсов данного метода избавляешься от гемороя а картинку уже со своего хоста качаешь смотришь работаешь с ней
|
|
|
24.09.2008, 15:27
|
#7
|
white powder
Регистрация: 29.04.2007
Сообщений: 2,692
Бабло: $370670
ТС -->
|
ТС
А на php в память курлом его можно считать?
мне на диск писать не надо, потом просто отдавать-трансформировать через GD.
|
|
|
24.09.2008, 15:28
|
#8
|
Senior Member
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
|
Код:
$fp = @fopen($SAVE_IMAGE_FILE, "wb");
if ($fp) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $IMAGE_URL);
curl_setopt($c, CURLOPT_FILE, $fp);
curl_setopt($c, CURLOPT_HEADER, FALSE);
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($c);
curl_close($c);
}
@fclose($fp);
|
|
|
24.09.2008, 15:29
|
#9
|
Senior Member
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
|
Если сохранять не надо:
Код:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $IMAGE_URL);
curl_setopt($c, CURLOPT_FILE, $fp);
curl_setopt($c, CURLOPT_HEADER, FALSE);
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
$image = curl_exec($c);
curl_close($c);
Исходник картинки в переменной $image.
|
|
|
24.09.2008, 16:30
|
#10
|
white powder
Регистрация: 29.04.2007
Сообщений: 2,692
Бабло: $370670
ТС -->
|
ТС
Уфф, братцы, че ему надо, а? Джипег вроде тянет нормал.. но не кажет пикчу...
PHP код:
<?php
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.gofuckbiz.com/spb/forsale2.jpg');
curl_setopt($c, CURLOPT_HEADER, FALSE);
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
$image = curl_exec($c);
curl_close($c);
//echo $image;
// Set the content type header - in this case image/jpeg
header('Content-type: image/jpeg');
// Output the image
imagejpeg($image);
// Free up memory
imagedestroy($image);
?>
|
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
|