From bf61e2e54778e7ba83a5de7c83e4887bb7ab12c4 Mon Sep 17 00:00:00 2001 From: Tim Perry Date: Fri, 19 Jul 2024 20:48:06 +0100 Subject: [PATCH] Fix issue with $ interpolation in PHP curl snippets --- src/targets/php/curl.js | 20 ++++++--- src/targets/php/helpers.js | 6 ++- .../php/curl/application-form-encoded.php | 12 +++--- .../output/php/curl/application-json.php | 12 +++--- test/fixtures/output/php/curl/compression.php | 10 ++--- test/fixtures/output/php/curl/cookies.php | 10 ++--- .../output/php/curl/custom-method.php | 8 ++-- test/fixtures/output/php/curl/full.php | 16 +++---- test/fixtures/output/php/curl/headers.php | 14 +++---- test/fixtures/output/php/curl/https.php | 8 ++-- .../output/php/curl/jsonObj-multiline.php | 14 ++++--- .../output/php/curl/jsonObj-null-value.php | 12 +++--- test/fixtures/output/php/curl/malicious.php | 42 +++++++++---------- .../output/php/curl/multipart-data.php | 18 +++++--- .../output/php/curl/multipart-file.php | 18 +++++--- .../output/php/curl/multipart-form-data.php | 17 +++++--- test/fixtures/output/php/curl/nested.php | 8 ++-- test/fixtures/output/php/curl/query.php | 8 ++-- test/fixtures/output/php/curl/short.php | 8 ++-- test/fixtures/output/php/curl/text-plain.php | 12 +++--- 20 files changed, 152 insertions(+), 121 deletions(-) diff --git a/src/targets/php/curl.js b/src/targets/php/curl.js index 50a2e0f..37a5d82 100644 --- a/src/targets/php/curl.js +++ b/src/targets/php/curl.js @@ -12,6 +12,7 @@ const { format } = require('../../helpers/format') const CodeBuilder = require('../../helpers/code-builder') +const { phpSqEscape } = require('./helpers') module.exports = function (source, options) { const opts = Object.assign({ @@ -78,7 +79,16 @@ module.exports = function (source, options) { curlOptions.forEach(function (option) { if (!~[null, undefined].indexOf(option.value)) { - curlopts.push(format('%s => %s,', option.name, option.escape ? JSON.stringify(option.value) : option.value)) + curlopts.push( + format('%s => %s,', + option.name, + option.escape && typeof option.value === 'string' + ? `'${phpSqEscape(option.value)}'` + : option.escape + ? JSON.stringify(option.value) + : option.value + ) + ) } }) @@ -88,12 +98,12 @@ module.exports = function (source, options) { }) if (cookies.length) { - curlopts.push(format('CURLOPT_COOKIE => "%s",', cookies.join('; '))) + curlopts.push(format("CURLOPT_COOKIE => '%s'", phpSqEscape(cookies.join('; ')))) } // construct cookies const headers = Object.keys(source.headersObj).sort().map(function (key) { - return format('"%s: %qd"', key, source.headersObj[key]) + return format("'%s: %s'", phpSqEscape(key), phpSqEscape(source.headersObj[key])) }) if (headers.length) { @@ -113,9 +123,9 @@ module.exports = function (source, options) { .push('if ($err) {') if (opts.namedErrors) { - code.push(1, 'echo array_flip(get_defined_constants(true)["curl"])[$err];') + code.push(1, "echo array_flip(get_defined_constants(true)['curl'])[$err];") } else { - code.push(1, 'echo "cURL Error #:" . $err;') + code.push(1, "echo 'cURL Error #:' . $err;") } code.push('} else {') diff --git a/src/targets/php/helpers.js b/src/targets/php/helpers.js index 0e833fa..c1dffd0 100644 --- a/src/targets/php/helpers.js +++ b/src/targets/php/helpers.js @@ -1,6 +1,7 @@ 'use strict' -const { escape } = require('../../helpers/format') +// PHP single quotes are super simple - all escapes ignored except sq & slash +const phpSqEscape = val => val.replace(/\\/g, '\\\\').replace(/'/g, "\\'") const convert = function (obj, indent, lastIndent) { let i, result @@ -19,7 +20,7 @@ const convert = function (obj, indent, lastIndent) { break case '[object String]': - result = "'" + escape(obj, { delimiter: "'", escapeNewlines: false }) + "'" + result = "'" + phpSqEscape(obj) + "'" break case '[object Number]': @@ -55,6 +56,7 @@ const convert = function (obj, indent, lastIndent) { } module.exports = { + phpSqEscape: phpSqEscape, convert: convert, methods: [ 'ACL', diff --git a/test/fixtures/output/php/curl/application-form-encoded.php b/test/fixtures/output/php/curl/application-form-encoded.php index 0892dd3..47114c3 100644 --- a/test/fixtures/output/php/curl/application-form-encoded.php +++ b/test/fixtures/output/php/curl/application-form-encoded.php @@ -3,16 +3,16 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "foo=bar&hello=world", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => 'foo=bar&hello=world', CURLOPT_HTTPHEADER => [ - "content-type: application/x-www-form-urlencoded" + 'content-type: application/x-www-form-urlencoded' ], ]); @@ -22,7 +22,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/application-json.php b/test/fixtures/output/php/curl/application-json.php index 8a0f0c1..e80ff42 100644 --- a/test/fixtures/output/php/curl/application-json.php +++ b/test/fixtures/output/php/curl/application-json.php @@ -3,16 +3,16 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "{\"number\":1,\"string\":\"f\\\"oo\",\"arr\":[1,2,3],\"nested\":{\"a\":\"b\"},\"arr_mix\":[1,\"a\",{\"arr_mix_nested\":{}}],\"boolean\":false}", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '{"number":1,"string":"f\\"oo","arr":[1,2,3],"nested":{"a":"b"},"arr_mix":[1,"a",{"arr_mix_nested":{}}],"boolean":false}', CURLOPT_HTTPHEADER => [ - "content-type: application/json" + 'content-type: application/json' ], ]); @@ -22,7 +22,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/compression.php b/test/fixtures/output/php/curl/compression.php index 6bf18d4..bfc0378 100644 --- a/test/fixtures/output/php/curl/compression.php +++ b/test/fixtures/output/php/curl/compression.php @@ -3,15 +3,15 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ - "accept-encoding: deflate, gzip, br" + 'accept-encoding: deflate, gzip, br' ], ]); @@ -21,7 +21,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } \ No newline at end of file diff --git a/test/fixtures/output/php/curl/cookies.php b/test/fixtures/output/php/curl/cookies.php index 2810430..c604973 100644 --- a/test/fixtures/output/php/curl/cookies.php +++ b/test/fixtures/output/php/curl/cookies.php @@ -3,14 +3,14 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_COOKIE => "foo=bar; bar=baz", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_COOKIE => 'foo=bar; bar=baz' ]); $response = curl_exec($curl); @@ -19,7 +19,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/custom-method.php b/test/fixtures/output/php/curl/custom-method.php index 08aa597..16e6d57 100644 --- a/test/fixtures/output/php/curl/custom-method.php +++ b/test/fixtures/output/php/curl/custom-method.php @@ -3,13 +3,13 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "PROPFIND", + CURLOPT_CUSTOMREQUEST => 'PROPFIND', ]); $response = curl_exec($curl); @@ -18,7 +18,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/full.php b/test/fixtures/output/php/curl/full.php index 6f342b6..ee1aaee 100644 --- a/test/fixtures/output/php/curl/full.php +++ b/test/fixtures/output/php/curl/full.php @@ -3,18 +3,18 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har?foo=bar&foo=baz&baz=abc&key=value", + CURLOPT_URL => 'http://mockbin.com/har?foo=bar&foo=baz&baz=abc&key=value', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "foo=bar", - CURLOPT_COOKIE => "foo=bar; bar=baz", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => 'foo=bar', + CURLOPT_COOKIE => 'foo=bar; bar=baz' CURLOPT_HTTPHEADER => [ - "accept: application/json", - "content-type: application/x-www-form-urlencoded" + 'accept: application/json', + 'content-type: application/x-www-form-urlencoded' ], ]); @@ -24,7 +24,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/headers.php b/test/fixtures/output/php/curl/headers.php index d0d4bb7..42dfe33 100644 --- a/test/fixtures/output/php/curl/headers.php +++ b/test/fixtures/output/php/curl/headers.php @@ -3,17 +3,17 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ - "accept: application/json", - "quoted-value: \"quoted\" 'string'", - "x-foo: Bar" + 'accept: application/json', + 'quoted-value: "quoted" \'string\'', + 'x-foo: Bar' ], ]); @@ -23,7 +23,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/https.php b/test/fixtures/output/php/curl/https.php index 7d97476..bef4757 100644 --- a/test/fixtures/output/php/curl/https.php +++ b/test/fixtures/output/php/curl/https.php @@ -3,13 +3,13 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "https://mockbin.com/har", + CURLOPT_URL => 'https://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', ]); $response = curl_exec($curl); @@ -18,7 +18,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/jsonObj-multiline.php b/test/fixtures/output/php/curl/jsonObj-multiline.php index 19f7727..2c5d836 100644 --- a/test/fixtures/output/php/curl/jsonObj-multiline.php +++ b/test/fixtures/output/php/curl/jsonObj-multiline.php @@ -3,16 +3,18 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "{\n \"foo\": \"bar\"\n}", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '{ + "foo": "bar" +}', CURLOPT_HTTPHEADER => [ - "content-type: application/json" + 'content-type: application/json' ], ]); @@ -22,7 +24,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/jsonObj-null-value.php b/test/fixtures/output/php/curl/jsonObj-null-value.php index 99a2289..68fee65 100644 --- a/test/fixtures/output/php/curl/jsonObj-null-value.php +++ b/test/fixtures/output/php/curl/jsonObj-null-value.php @@ -3,16 +3,16 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "{\"foo\":null}", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '{"foo":null}', CURLOPT_HTTPHEADER => [ - "content-type: application/json" + 'content-type: application/json' ], ]); @@ -22,7 +22,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/malicious.php b/test/fixtures/output/php/curl/malicious.php index 11012f6..6418f5c 100644 --- a/test/fixtures/output/php/curl/malicious.php +++ b/test/fixtures/output/php/curl/malicious.php @@ -3,31 +3,31 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://example.test/%27%22%60$(%(%%7B%7B%7B/0%s//?'=squote-key-test&squote-value-test='&%22=dquote-key-test&dquote-value-test=%22&%60=backtick-key-test&backtick-value-test=%60&%24(=dollar-parenthesis-key-test&dollar-parenthesis-value-test=%24(&%23%7B=hash-brace-key-test&hash-brace-value-test=%23%7B&%25(=percent-parenthesis-key-test&percent-parenthesis-value-test=%25(&%25%7B=percent-brace-key-test&percent-brace-value-test=%25%7B&%7B%7B=double-brace-key-test&double-brace-value-test=%7B%7B&%5C0=null-key-test&null-value-test=%5C0&%25s=string-fmt-key-test&string-fmt-value-test=%25s&%5C=slash-key-test&slash-value-test=%5C", + CURLOPT_URL => 'http://example.test/%27%22%60$(%(%%7B%7B%7B/0%s//?\'=squote-key-test&squote-value-test=\'&%22=dquote-key-test&dquote-value-test=%22&%60=backtick-key-test&backtick-value-test=%60&%24(=dollar-parenthesis-key-test&dollar-parenthesis-value-test=%24(&%23%7B=hash-brace-key-test&hash-brace-value-test=%23%7B&%25(=percent-parenthesis-key-test&percent-parenthesis-value-test=%25(&%25%7B=percent-brace-key-test&percent-brace-value-test=%25%7B&%7B%7B=double-brace-key-test&double-brace-value-test=%7B%7B&%5C0=null-key-test&null-value-test=%5C0&%25s=string-fmt-key-test&string-fmt-value-test=%25s&%5C=slash-key-test&slash-value-test=%5C', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "' \" ` $( #{ %( %{ {{ \\0 %s \\", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '\' " ` $( #{ %( %{ {{ \\0 %s \\', CURLOPT_HTTPHEADER => [ - "#: hash-key-test", - "$: dollar-key-test", - "%: percent-key-test", - "': squote-key-test", - "`: backtick-key-test", - "backtick-value-test: `", - "dollar-parenthesis-value-test: $(", - "double-brace-value-test: {{", - "dquote-value-test: \"", - "hash-brace-value-test: #{", - "null-value-test: \\0", - "percent-brace-value-test: %{", - "percent-parenthesis-value-test: %(", - "slash-value-test: \\", - "squote-value-test: '", - "string-fmt-value-test: %s" + '#: hash-key-test', + '$: dollar-key-test', + '%: percent-key-test', + '\': squote-key-test', + '`: backtick-key-test', + 'backtick-value-test: `', + 'dollar-parenthesis-value-test: $(', + 'double-brace-value-test: {{', + 'dquote-value-test: "', + 'hash-brace-value-test: #{', + 'null-value-test: \\0', + 'percent-brace-value-test: %{', + 'percent-parenthesis-value-test: %(', + 'slash-value-test: \\', + 'squote-value-test: \'', + 'string-fmt-value-test: %s' ], ]); @@ -37,7 +37,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } \ No newline at end of file diff --git a/test/fixtures/output/php/curl/multipart-data.php b/test/fixtures/output/php/curl/multipart-data.php index d6ce07f..4f91074 100644 --- a/test/fixtures/output/php/curl/multipart-data.php +++ b/test/fixtures/output/php/curl/multipart-data.php @@ -3,16 +3,22 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '-----011000010111000001101001 +Content-Disposition: form-data; name="foo"; filename="hello.txt" +Content-Type: text/plain + +Hello World +-----011000010111000001101001-- +', CURLOPT_HTTPHEADER => [ - "content-type: multipart/form-data; boundary=---011000010111000001101001" + 'content-type: multipart/form-data; boundary=---011000010111000001101001' ], ]); @@ -22,7 +28,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/multipart-file.php b/test/fixtures/output/php/curl/multipart-file.php index e238b8e..129b9d2 100644 --- a/test/fixtures/output/php/curl/multipart-file.php +++ b/test/fixtures/output/php/curl/multipart-file.php @@ -3,16 +3,22 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\n\r\n-----011000010111000001101001--\r\n", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '-----011000010111000001101001 +Content-Disposition: form-data; name="foo"; filename="hello.txt" +Content-Type: text/plain + + +-----011000010111000001101001-- +', CURLOPT_HTTPHEADER => [ - "content-type: multipart/form-data; boundary=---011000010111000001101001" + 'content-type: multipart/form-data; boundary=---011000010111000001101001' ], ]); @@ -22,7 +28,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/multipart-form-data.php b/test/fixtures/output/php/curl/multipart-form-data.php index 038aa49..17e5a9d 100644 --- a/test/fixtures/output/php/curl/multipart-form-data.php +++ b/test/fixtures/output/php/curl/multipart-form-data.php @@ -3,16 +3,21 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"\r\n\r\nbar\r\n-----011000010111000001101001--\r\n", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '-----011000010111000001101001 +Content-Disposition: form-data; name="foo" + +bar +-----011000010111000001101001-- +', CURLOPT_HTTPHEADER => [ - "Content-Type: multipart/form-data; boundary=---011000010111000001101001" + 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' ], ]); @@ -22,7 +27,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/nested.php b/test/fixtures/output/php/curl/nested.php index 9b345ab..28161a8 100644 --- a/test/fixtures/output/php/curl/nested.php +++ b/test/fixtures/output/php/curl/nested.php @@ -3,13 +3,13 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har?foo%5Bbar%5D=baz%2Czap&fiz=buz&key=value", + CURLOPT_URL => 'http://mockbin.com/har?foo%5Bbar%5D=baz%2Czap&fiz=buz&key=value', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', ]); $response = curl_exec($curl); @@ -18,7 +18,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/query.php b/test/fixtures/output/php/curl/query.php index 158e851..a799eb8 100644 --- a/test/fixtures/output/php/curl/query.php +++ b/test/fixtures/output/php/curl/query.php @@ -3,13 +3,13 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har?foo=bar&foo=baz&baz=abc&key=value", + CURLOPT_URL => 'http://mockbin.com/har?foo=bar&foo=baz&baz=abc&key=value', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', ]); $response = curl_exec($curl); @@ -18,7 +18,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/short.php b/test/fixtures/output/php/curl/short.php index 9188e25..9f81196 100644 --- a/test/fixtures/output/php/curl/short.php +++ b/test/fixtures/output/php/curl/short.php @@ -3,13 +3,13 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_CUSTOMREQUEST => 'GET', ]); $response = curl_exec($curl); @@ -18,7 +18,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; } diff --git a/test/fixtures/output/php/curl/text-plain.php b/test/fixtures/output/php/curl/text-plain.php index 8fbb09d..999c5c0 100644 --- a/test/fixtures/output/php/curl/text-plain.php +++ b/test/fixtures/output/php/curl/text-plain.php @@ -3,16 +3,16 @@ $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => "http://mockbin.com/har", + CURLOPT_URL => 'http://mockbin.com/har', CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => "", + CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_POSTFIELDS => "Hello World", + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => 'Hello World', CURLOPT_HTTPHEADER => [ - "content-type: text/plain" + 'content-type: text/plain' ], ]); @@ -22,7 +22,7 @@ curl_close($curl); if ($err) { - echo "cURL Error #:" . $err; + echo 'cURL Error #:' . $err; } else { echo $response; }