Esempio n. 1
0
 /**
  * Arrays are walked through using the key as a the name.  Arrays
  * of Arrays are emitted as repeated fields consistent with such things
  * as checkboxes.
  *
  * @desc Return data as a post string.
  * @param mixed by reference data to be written.
  * @param string [optional] name of the datum.
  * @access public
  */
 function &asPostString(&$theData, $theName = NULL)
 {
     $thePostString = '';
     $thePrefix = $theName;
     if (is_array($theData)) {
         foreach ($theData as $theKey => $theValue) {
             if ($thePrefix === NULL) {
                 $thePostString .= '&' . curl::asPostString($theValue, $theKey);
             } else {
                 $thePostString .= '&' . curl::asPostString($theValue, $thePrefix . '[' . $theKey . ']');
             }
         }
     } else {
         $thePostString .= '&' . urlencode((string) $thePrefix) . '=' . urlencode($theData);
     }
     $xxx =& substr($thePostString, 1);
     return $xxx;
 }
<?php

include_once "class.curl.php";
//
// Create a new instance of the curl class and point it
// at the page to be fetched.
//
$c = new curl("http://www.csworks.com/development/dumpState.php");
//
// By default, curl doesn't follow redirections and this
// page may or may not be available via redirection.
//
$c->setopt(CURLOPT_FOLLOWLOCATION, true);
$c->setopt(CURLOPT_POST, true);
$theFields = array('foo' => '1', 'bar' => array(2, 3, 4), 'baz' => array(array(5, 6), array(7, 8)));
$c->setopt(CURLOPT_POSTFIELDS, $c->asPostString($theFields));
//
// By default, the curl class expects to return data to
// the caller.
//
echo $c->exec();
//
// Check to see if there was an error and, if so, print
// the associated error message.
//
if ($theError = $c->hasError()) {
    echo $theError;
}
//
// Done with the cURL, so get rid of the cURL related resources.
//