function aspFormPost($url, $data = array()) { $regexViewstate = '/__VIEWSTATE\\" value=\\"(.*)\\"/i'; $regexEventVal = '/__EVENTVALIDATION\\" value=\\"(.*)\\"/i'; $regs = array(); $this->ckfile = tempnam("/tmp", "CURLCOOKIE"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $gcontent = curl_exec($ch); $viewstate = $this->regexExtract($gcontent, $regexViewstate, $regs, 1); $eventval = $this->regexExtract($gcontent, $regexEventVal, $regs, 1); $data['__VIEWSTATE'] = $viewstate; $data['__EVENTVALIDATION'] = $eventval; curl_setOpt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_COOKIEJAR, $this->ckfile); $content = curl_exec($ch); if ($content === false) { $content = curl_error($ch); } curl_close($ch); return $content; }
function getUserId($username, $site) { // List of variables $url = getURL($site); $userNameTextBox = 'ctl00$tbxQGo'; $searchButtonId1 = 'ctl00$ibQGo.x'; $searchButtonId2 = 'ctl00$ibQGo.y'; $searchButtonVal1 = '10'; $searchButtonVal2 = '5'; $hiddenname = 'ctl00$cph1$sw'; $hiddenvalue = 'rbSBlog'; // RegExp to parse out __VIEWSTATE and __EVENTVALIDATION $regexViewstate = '/__VIEWSTATE\\" value=\\"(.*)\\"/i'; $regexEventVal = '/__EVENTVALIDATION\\" value=\\"(.*)\\"/i'; $regs = array(); // Function for parsing __VIEWSTATE and __EVENTVALIDATION function regexExtract($text, $regex, $regs, $nthValue) { if (preg_match($regex, $text, $regs)) { $result = $regs[$nthValue]; } return $result; } // Initiate cURL session $ch = curl_init(); // GET request to retrieve __VIEWSTATE and __EVENTVALIDATION curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $data = curl_exec($ch); if ($data) { // from the returned html, parse out the __VIEWSTATE and __EVENTVALIDATION values $viewstate = regexExtract($data, $regexViewstate, $regs, 1); $eventval = regexExtract($data, $regexEventVal, $regs, 1); // POST request $postData = '__VIEWSTATE=' . rawurlencode($viewstate) . '&__EVENTVALIDATION=' . rawurlencode($eventval) . '&' . $userNameTextBox . '=' . $username . '&' . $searchButtonId1 . '=' . $searchButtonVal1 . '&' . $searchButtonId2 . '=' . $searchButtonVal2 . '&' . $hiddenname . '=' . $hiddenvalue; curl_setOpt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); // Get new location URL header $curl_info = curl_getinfo($ch); $headers = substr($data, 0, $curl_info["header_size"]); preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches); // Extract ID from the retrieved header $id = preg_replace("/[^0-9]/", '', $matches[1]); } else { $id = "na"; } // Close cURL session curl_close($ch); return $id; }
/** * Make a post to an URL, with * an array faking input * @param string url - the url to the sit * @param array postArr * @return */ public function doPost($url = '', $postArr = '') { $ch = curl_init(); curl_setOpt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLINFO_HEADER_OUT, true); $postArr = http_build_query($postArr); curl_setopt($ch, CURLOPT_POSTFIELDS, $postArr); $data = curl_exec($ch); curl_close($ch); return $data; }
<?php //SR API //http://sverigesradio.se/api/documentation/v2/metoder/trafik.html //http://sverigesradio.se/api/documentation/v2/generella_parametrar.html $callback = "JSON"; //pagination = true, page = x, size = y $format = "json"; $pagination = "true"; $size = 50; $page = 1; $minutesToCache = 10; $cachefile = "trafficInfo.txt"; //If cached file exceeds n minutes, get updated traffic info //and put it into the cachefile. if (file_exists($cachefile) && filemtime($cachefile) < time() - 60 * $minutesToCache) { $url = "http://api.sr.se/api/v2/traffic/messages?format={$format}&pagination={$pagination}&size={$size}page={$page}"; $ch = curl_init(); curl_setOpt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $trafficInfo = curl_exec($ch); curl_close($ch); file_put_contents($cachefile, $trafficInfo); } //print the contents of the cached file $handle = fopen($cachefile, "r"); $info = fread($handle, filesize($cachefile)); print_r($info);
public function setOpt($option, $value) { curl_setOpt($this->curl, $option, $value); return $this; }
public function curl_post($url, $content_type, $contents_array) { $contents = http_build_query($contents_array); $curl = curl_init(); curl_setOpt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($curl, CURLOPT_CAPATH, getcwd() . "/application/certs/"); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $contents); $result = curl_exec($curl); curl_close($curl); return $result; }