Разрывы строк в PHP cURL

Я использую следующую команду для обновления базы данных (разрывы строк имеют жизненно важное значение):

curl -X PUT -H 'Content-Type: multipart/form-data; boundary=myboundary' -d '--myboundary Content-ID: <request>

{"jsonKey":"jsonValue"} --myboundary-' 'http://target.url.com/path/to/folder'

Это работает правильно, но PHP-эквивалент имеет проблемы:

$data = '--myboundary Content-ID: <request>

{"jsonKey":"jsonValue"} --myboundary-';

$handle = curl_init();
curl_setopt_array(
$handle,
array(
CURLOPT_URL => 'http://target.url.com/path/to/folder',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => 'Content-Type: multipart/form-data; boundary=myboundary',
CURLOPT_BINARYTRANSFER => true,
CURLOPT_POSTFIELDS => $data
)
);
$response = curl_exec($handle);
if($response === false){
echo 'curl error: ' . curl_error($handle);
}
curl_close($handle);
return $response;

Он не возвращает ошибок, но данные, введенные как json, имеют значение null.
Я проверил все остальное, но не могу найти четкую информацию о том, как cURL обрабатывает разрывы строк, и предполагаю, что между PHP-разрывами и консольными разрывами есть некоторая разница.

Любое понимание проблемы разрывов строк, или почему это может не работать, будет оценено.

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

0

Решение

В первом примере вы используете POST. Во втором примере вы используете PUT. Вы уверены, что это правильно?

            CURLOPT_CUSTOMREQUEST => 'PUT',
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]