Я никогда не делал никакого завихрения, прежде чем так будут нуждаться в некоторой справке. Я попытался работать это из примеров, но не могу получить голову вокруг этого!
У меня есть вихревая команда, что я могу успешно выполнить из Linux (человечность) командную строку, которая помещает файл в Wiki через API.
Я должен был бы включить эту вихревую команду в Сценарий PHP, который я создаю.
Как я могу перевести эту вихревую команду так, чтобы она работала в Сценарии PHP?
curl -b cookie.txt -X PUT \
--data-binary "@test.png" \
-H "Content-Type: image/png" \
"http://hostname/@api/deki/pages/=TestPage/files/=test.png" \
-0
cookie.txt содержит аутентификацию, но у меня нет проблемы при помещении этого в открытый текст в сценарии, когда это будет выполнено мной только.
@test.png должен быть переменной, такой как $filename
http://имя узла / api/deki/pages / = TestPage/files / = должен быть переменной, такой как $pageurl
Спасибо за любую справку.
отправная точка:
<?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
для этой цели была добавлена опция --libcurl, хотя она и делает программу на C, я думаю, ее будет довольно легко перевести на PHP
Попробуйте:
$cmd='curl -b cookie.txt -X PUT \
--data-binary "@test.png" \
-H "Content-Type: image/png" \
"http://hostname/@api/deki/pages/=TestPage/files/=test.png" \
-0';
exec($cmd,$result);