3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php /** * Call the Pardot API and get the raw XML response back * * @param string $url the full Pardot API URL to call, e.g. "https://pi.pardot.com/api/prospect/version/3/do/query" * @param array $data the data to send to the API - make sure to include your api_key and user_key for authentication * @param string $method GET", "POST", "DELETE" * @return string the raw XML response from the Pardot API * @throws Exception if we were unable to contact the Pardot API or something went wrong */ function callPardotApi($url, $data, $method = 'GET') { // build out the full url, with the query string attached. $queryString = http_build_query($data, null, '&'); if (strpos($url, '?') !== false) { $url = $url . '&' . $queryString; } else { $url = $url . '?' . $queryString; } $curl_handle = curl_init($url); // wait 5 seconds to connect to the Pardot API, and 30 // total seconds for everything to complete curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($curl_handle, CURLOPT_TIMEOUT, 30); // https only, please! curl_setopt($curl_handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS); // ALWAYS verify SSL - this should NEVER be changed. 2 = strict verify curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 2); // return the result from the server as the return value of curl_exec instead of echoing it curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); if (strcasecmp($method, 'POST') === 0) { curl_setopt($curl_handle, CURLOPT_POST, true); } elseif (strcasecmp($method, 'GET') !== 0) { // perhaps a DELETE? curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, strtoupper($method)); } $pardotApiResponse = curl_exec($curl_handle); if ($pardotApiResponse === false) { // failure - a timeout or other problem. depending on how you want to handle failures, // you may want to modify this code. Some folks might throw an exception here. Some might // log the error. May you want to return a value that signifies an error. The choice is yours! // let's see what went wrong -- first look at curl $humanReadableError = curl_error($curl_handle); // you can also get the HTTP response code $httpResponseCode = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE); // make sure to close your handle before you bug out! curl_close($curl_handle); throw new Exception("Unable to successfully complete Pardot API call to $url -- curl error: \"". "$humanReadableError\", HTTP response code was: $httpResponseCode"); } // make sure to close your handle before you bug out! curl_close($curl_handle); return $pardotApiResponse; } //this will log in and print your API Key (good for 1 hour) to the console $rz_key = callPardotApi('https://pi.pardot.com/api/login/version/3', array( 'email' => 'myemail@email.com', 'password' => 'password', 'user_key' => '032222222222222b75a192daba28d' ) ); $number_url = 'https://pi.pardot.com/api/prospect/version/3/do/query'; $number_url .= '?user_key=032222222222222b75a192daba28d'; $number_url .= '&api_key='; $number_url .= $rz_key; $number_url .= '&list_id=97676'; $number_url = preg_replace('/\s+/', '', $number_url); echo $number_url;
Output for 7.0.0 - 7.1.0
Fatal error: Uncaught Error: Call to undefined function curl_init() in /in/uCfiD:21 Stack trace: #0 /in/uCfiD(73): callPardotApi('https://pi.pard...', Array) #1 {main} thrown in /in/uCfiD on line 21
Process exited with code 255.
Output for 5.1.2 - 5.6.28
Fatal error: Call to undefined function curl_init() in /in/uCfiD on line 21
Process exited with code 255.
Output for 5.0.0 - 5.1.1
Warning: http_build_query() expects at most 2 parameters, 3 given in /in/uCfiD on line 14 Fatal error: Call to undefined function curl_init() in /in/uCfiD on line 21
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_NEW in /in/uCfiD on line 59
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_NEW in /in/uCfiD on line 59
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/uCfiD on line 59
Process exited with code 255.