Intereting Posts
curl_init () отключен по соображениям безопасности Как заменить \ r & \ n на <br/>? При извлечении имени исполнителя из файла XML отображается только 1 запись Yii CGrid разбиение на страницы и сортировка с помощью CArrayDataProvider не работает Модульные тесты для вывода HTML? как получить, если ключ массива защищен? Amazon api не удаляет мои продукты из инвентаря php-скрипты получают значение узла, если оно равно заданному значению; изменение значения узла имеет один и тот же родительский узел Нужно ли в любом случае переносить значение в php на вторую страницу? Лучшая практика для запоминания меня имеет функцию AngularJS 'Невозможно прочитать свойство' then 'of undefined' z-Scores (стандартное отклонение и среднее значение) в PHP Внедрение полнофункциональной загрузки мультимедиа в веб-приложении PayPal Donate Button Redirect после оплаты как создать экстрактор URL, например, facebook share

Преобразование командной строки cURL в PHP cURL

Я никогда не делал завиток, поэтому мне нужна помощь. Я попытался разобраться с примерами, но не могу обойти его!

У меня есть команда curl, которую я могу успешно запустить из командной строки linux (ubuntu), которая помещает файл в wiki через api.

Мне нужно включить эту команду curl в скрипт PHP, который я создаю.

Как я могу перевести эту команду curl, чтобы она работала в PHP-скрипте?

curl -b cookie.txt -X PUT \ --data-binary "@test.png" \ -H "Content-Type: image/png" \ "http://img.ruphp.com/php/=test.png" \ -0 

cookie.txt содержит аутентификацию, но у меня нет проблемы с помещением этого текста в скрипт, поскольку это будет выполняться только мной.

@ test.png должна быть переменной типа $ filename

http: // hostname / @ api / deki / pages / = TestPage / files / = должна быть переменная, такая как $ pageurl

Спасибо за любую помощь.

Related of "Преобразование командной строки cURL в PHP cURL"

отправная точка:

 <?php $pageurl = "http://hostname/@api/deki/pages/=TestPage/files/="; $filename = "test.png"; $theurl = $pageurl . $filename; $ch = curl_init($theurl); curl_setopt($ch, CURLOPT_COOKIE, ...); // -b curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // -X curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: image/png']); // -H curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // -0 ... ?> 

См. Также: http://www.php.net/manual/en/function.curl-setopt.php

Попробуй это:

 $cmd='curl -b cookie.txt -X PUT \ --data-binary "@test.png" \ -H "Content-Type: image/png" \ "http://img.ruphp.com/php/=test.png" \ -0'; exec($cmd,$result); 

для этой цели был добавлен параметр -libcurl, хотя он делает программу на C, я думаю, что ее довольно легко перевести на PHP

Используя ответ MYYN как отправную точку, и эту страницу как ссылку о том, как отправлять данные POST с помощью PHP cURL, вот мое предложение (я работаю над чем-то очень похожим на данный момент):

 <?php $pageurl = "http://hostname/@api/deki/pages/=TestPage/files/="; $filename = "test.png"; $theurl = $pageurl.$filename; $ch = curl_init($theurl); curl_setopt($ch, CURLOPT_COOKIE, ...); // -b curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // -X curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: image/png']); // -H curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // -0 $post = array("$filename"=>"@$filename"); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $response = curl_exec($ch); ?> 

Вероятно, вы можете оптимизировать множество curl_setopts с помощью вызова curl_setopt_array (), если хотите.

Лучше это. В одной строке.

 $cmd='curl -b cookie.txt -X PUT --data-binary "@test.png" -H "Content-Type: image/png" "http://img.ruphp.com/php/=test.png" -0'; exec($cmd,$result); 

Тебе нужно …

curl-to-PHP: https://incarnate.github.io/curl-to-php/

«Мгновенно конвертировать команды curl в PHP-код»

Какой бы cURL у вас в командной строке, вы можете преобразовать его в PHP с помощью этого инструмента:

 https://incarnate.github.io/curl-to-php/ 

Это помогло мне после долгих долгих часов поиска решения! Надеюсь, это тоже поможет вам! Ваше решение таково:

 // Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://img.ruphp.com/php/=test.png"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $post = array( "file" => "@" .realpath("test.png") ); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); $headers = array(); $headers[] = "Content-Type: image/png"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch);