File indexing completed on 2024-12-22 05:33:23

0001 <?php
0002 
0003 /*
0004  *   TRT GFX 3.0.1 (beta build) BackToSlash
0005  * 
0006  *   support: happy.snizzo@gmail.com
0007  *   website: http://trt-gfx.googlecode.com
0008  *   credits: Claudio Desideri
0009  *   
0010  *   This software is released under the MIT License.
0011  *   http://opensource.org/licenses/mit-license.php
0012  */ 
0013 
0014 class ENetworkSocket{
0015   
0016   private $target_server;
0017   private $postdata;
0018   private $numpost = 0;
0019   private $uploaded_file = 0;
0020   
0021   public function __construct($srv){
0022     $this->set_target_server($srv);
0023   }
0024   
0025   public function set_target_server($srv){
0026     $this->target_server = rtrim($srv,"/")."/";
0027   }
0028   
0029   /* Example post data:
0030    * $postdata = (
0031       array(
0032         'var1' => 'some content',
0033         'var2' => 'doh'
0034       )
0035     );
0036    *
0037    */
0038   public function set_post_data($data){
0039     $this->postdata = http_build_query($data);
0040     $this->numpost = count($data);
0041   }
0042   
0043   public function set_upload_file($file){
0044     $this->uploaded_file = $file;
0045   }
0046   
0047   /*
0048    * performs a get request and return raw xml
0049    */
0050   public function get ($string){
0051     $url = $this->target_server.$string;
0052     $result = file_get_contents($url);
0053     return $result;
0054   }
0055   
0056   /*
0057    * performs a post request and return raw xml
0058    */
0059   public function post ($string){
0060     if($this->uploaded_file){
0061       
0062       
0063       $ch = curl_init();
0064       
0065       // Assign POST data
0066             $this->postdata['localfile'] = new CurlFile($this->uploaded_file, 'application/octet-stream', $this->uploaded_file);
0067       
0068       curl_setopt($ch, CURLOPT_URL, $this->target_server.$string ); // imposto l'URL dello script destinatario
0069       curl_setopt($ch, CURLOPT_POST, true ); // indico il tipo di comunicazione da effettuare (POST)
0070       curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postdata); // indico i dati da inviare attraverso POST
0071       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
0072       $result = curl_exec($ch);
0073       
0074       if (curl_errno($ch)) { print curl_error($ch); }
0075       curl_close($ch); // close CURL session
0076 
0077       return $result;
0078       
0079     } else {
0080       $opts = array('http' =>
0081         array(
0082           'method'  => 'POST',
0083           'header'  => 'Content-type: application/x-www-form-urlencoded',
0084           'content' => $this->postdata
0085         )
0086       );
0087       
0088       $context = stream_context_create($opts);
0089       $url = $this->target_server.$string;
0090       $result = file_get_contents($url, false, $context);
0091       return $result;
0092     }
0093 
0094   }
0095 }
0096 
0097 ?>