С нами с 12.06.04
Сообщения: 122
|
Добавлено: 01/11/09 в 03:13 |
Пишу парсер на PHP, одна из задач которого копирование файлов(картинок) с удаленного сервера на мой хост. Помогите примером или подскажите в сторону каких PHP функций смотреть. Все что нашел в гугле в основном касается лишь аплоаду файлов с локального компа на хост.
upd: сорри, вопрос решен...
Последний раз редактировалось: Mafia (01/11/09 в 03:17), всего редактировалось 1 раз
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 01/11/09 в 03:17 |
самые простые варианты:
file
fsockopen
curl
|
|
|
|
С нами с 14.10.02
Сообщения: 462
Рейтинг: 727
|
Добавлено: 01/11/09 в 03:17 |
Код: | function url_content($url,$ref) {
if(!$ref){$ref="http://www.google.com/search?hl=en&suggon=0&safe=off&q=free+pics&start=360&sa=N";}
$USERAGENT = "Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_USERAGENT, $USERAGENT );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt( $ch, CURLOPT_REFERER, $ref );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "temp.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "temp.txt" );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
$get = curl_exec( $ch );
curl_close( $ch );
return $get;
} |
Примерно так наверно
|
|
Лучшие сайты в интеррасиал нише здесь Dogfart Зачетные RSS,FHG, и др. класные Промо
|
0
|
|
|
С нами с 12.06.04
Сообщения: 122
|
Добавлено: 01/11/09 в 03:20 |
сделал так, вроде работает...
Код: | $url="http://somehost/img.gif";
$img=file_get_contents($url);
$arr=parse_url ($url);
$name=basename( $arr["path"] );
file_put_contents($name,$img); |
всем спасибо!..
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 01/11/09 в 03:24 |
Ага, до первого антихолинка.
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 01/11/09 в 19:04 |
Антихотлинк это не обнаружит. Во всяком случае, если не запрещено получение имиджей без реферера вообще - что уже просто по-драконовски.
|
|
|
|
С нами с 01.11.09
Сообщения: 3
|
Добавлено: 01/11/09 в 22:05 |
подскажите что я делаю не так
вот так копирует файл нормально
Код: | $buffer=file_get_contents("index_3.php");
file_put_contents("index_4.php",$buffer); |
а так только пустой создает и все
Код: | $buffer=file_get_contents("http://bla.bla.bla/index_3.php");
file_put_contents("index_4.php",$buffer); |
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 01/11/09 в 22:50 |
nasguler писал: | подскажите что я делаю не так
вот так копирует файл нормально
Код: | $buffer=file_get_contents("index_3.php");
file_put_contents("index_4.php",$buffer); |
а так только пустой создает и все
Код: | $buffer=file_get_contents("http://bla.bla.bla/index_3.php");
file_put_contents("index_4.php",$buffer); | |
все верно делаешь
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 01/11/09 в 23:19 |
nasguler писал: |
а так только пустой создает и все
|
В мануале ж все расписано. allow_url_fopen отключен, скорее всего. А вообще надо в таких случаях смотреть в error_log, а не гадать ;)
|
|
|
|
С нами с 01.11.09
Сообщения: 3
|
Добавлено: 03/11/09 в 17:14 |
Dr.Syshalt писал: | В мануале ж все расписано. allow_url_fopen отключен, скорее всего. А вообще надо в таких случаях смотреть в error_log, а не гадать ;) |
сори, что туплю, помогите начинающему
allow_url_fopen = on более подробно можно посмотреть сдесь: http://nasguler.freehostia.com/p/my.php
Подскажите где искать error_log, есть каталог /home/logs/nasguler.freehostia.com/logs/, но он пустой
Направьте на подробный мануал, а то все что я прочел ответа не дало, правда про "обвёртку" не совсем понял...
или подскажите хост на котором это работает
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 03/11/09 в 17:24 |
Интересно. А так попробуй:
Код: |
$filename = "http://bla.bla.bla/index_3.php";
$handle = fopen($filename, "r");
$buffer = fread($handle, filesize($filename));
fclose($handle);
|
|
|
|
|
С нами с 01.11.09
Сообщения: 3
|
Добавлено: 03/11/09 в 18:24 |
gimcnuk писал: | Интересно. А так попробуй:
Код: |
$filename = "http://bla.bla.bla/index_3.php";
$handle = fopen($filename, "r");
$buffer = fread($handle, filesize($filename));
fclose($handle);
| |
ошибка еще на стадии открытия...
|
|
|
|