FastNetMon

Показаны сообщения с ярлыком cURL. Показать все сообщения
Показаны сообщения с ярлыком cURL. Показать все сообщения

вторник, 13 декабря 2011 г.

HTTP PUT vs POST для загрузки файлов, что лучше?

По инфе с stackoverflow:

The PUT method, though not as widely used as the POST method is perhaps the more efficient way of uploading files to a server. This is because in a POST upload the files neede to be combined together into a multipart message and this message has to be decoded at the server. In contrast, the PUT method allows you to simply write the contents of the file to the socket connection that is established with the server.

Информация из мана cURL подтверждает, что для загрузки файлов PUT - лучший вариант:
5. PUT

The perhaps best way to upload data to a HTTP server is to use PUT. Then
again, this of course requires that someone put a program or script on the
server end that knows how to receive a HTTP PUT stream.

Put a file to a HTTP server with curl:

curl --upload-file uploadfile http://www.example.com/receive.cgi

среда, 31 марта 2010 г.

Установка PHP curl на Debian 5 Lenny

Обновляем содержимое репозиториев:
apt-get update

Ставим пакет:
apt-get install -y php5-curl


Подключаем новйы модуль PHP к Апачу (иными словами, заставляем Апача перезагрузить свои модули и как следствие перезагрузить PHP расширения):
/etc/init.d/apache2 restart


Убеждаемся, что все подключилось:
php -m | grep curl
curl

вторник, 9 марта 2010 г.

пятница, 26 февраля 2010 г.

cURL: как менять исходящий IP?

Часто на серверах используется большое количество IP, но все программы и скрипты используют самый первый из них (точнее тот, для которого прописан default route). Изменить это поведение вполне возможно, пример кода ниже. Этот скрипт при выполнении отображает IP адрес, который видят удаленные сервисы.


<?PHP
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://automation.whatismyip.com/n09230945.asp");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_INTERFACE, '88.xx.xx.xx'); // работаем через дополнительный IP
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// grab URL and pass it to the browser
$output = curl_exec($ch);
echo $output;

// close cURL resource, and free up system resources
curl_close($ch);
?>


Если же cURL не используется, а используются лишь голые сокеты, то это все равно возможно сделать: http://blog.nachtarbeiter.net/2008/08/21/binding-phps-fsockopen-to-a-specific-ip-address/

По материалам http://www.php.net/manual/en/function.curl-setopt.php