Example #1
0
 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;
 }
Example #2
0
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);
Example #5
0
 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;
 }