27 באוק׳ 2021, 9:53

@ASS
התחברתי עם המחלקה וכתבתי פקודה, בסוף סגרתי עם ?>

והוא מחזיר

( ! ) Parse error: syntax error, unexpected '?>', expecting ')' in C:\wamp64\www\my_php\1.php on line 260

כאילו יש לו בעיה עם הסיומת, הורדתי את הסיומת ומחזיר

( ! ) Parse error: syntax error, unexpected end of file, expecting ')' in C:\wamp64\www\my_php\1.php on line 260

הקוד המלא הוא

<?php

define("URL", "https://private.call2all.co.il/ym/api/");
$server = "private";

class BodyPost
{
// part "multipart/form-data"
    public static function PartPost($name, $val)
     {
         $body = 'Content-Disposition: form-data; name="' . $name . '"';
// check instance of oFile
         if($val instanceof oFile)
          {
              $file = $val->Name();
              $mime = $val->Mime();
              $cont = $val->Content();
 
              $body .= '; filename="' . $file . '"' . "\r\n";
              $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
              $body .= $cont."\r\n";
          } else $body .= "\r\n\r\n".$val."\r\n";
         return $body;
     }
 
    public static function Get(array $post, $delimiter = '-------------0123456789')
     {
         if(is_array($post) && !empty($post))
          {
              $bool = true;
              //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
              if($bool)
               {
                   $ret = '';
                   foreach($post as $name=>$val)
                       $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                   $ret .= "--" . $delimiter . "--\r\n";
               } else $ret = http_build_query($post);
          } else throw new \Exception('Error input param!');
         return $ret;
     }
}
 
class oFile
{
     private $name;
     private $mime;
     private $content;
 
     public function __construct($name, $mime=null, $content=null)
      {
          if(is_null($content))
           {
               $info = pathinfo($name);
// check is exist and readable file
               if(!empty($info['basename']) && is_readable($name))
                {
                    $this->name = $info['basename'];
// get MIME
                    $this->mime = mime_content_type($name);
// load file
                    $content = file_get_contents($name);
                    if($content!==false)
                    {
                        $this->content = $content;
                    }
                    else
                    {
                        throw new Exception('Don`t get content - "'.$name.'"');
                    }
                }
                else
                {
                    throw new Exception('Error param');
                }
           }
           else
           {
                   $this->name = $name;
                   if(is_null($mime)) $mime = mime_content_type($name);
                   $this->mime = $mime;
                   $this->content = $content;
            };
      }
 
    public function Name() { return $this->name; }
 
    public function Mime() { return $this->mime; }
 
    public function Content() { return $this->content; }
 
}
 
class connecting_to_yemot_api
{
    public $token;
 
    const URL = URL;
 
    public function __construct($user_name, $password)
    {
        $body = array('username' => $user_name, 'password' => $password);
 
        $body = http_build_query($body);
 
        $opts = array('http' => array(
 
            'method'  => 'POST',
 
            'header'  => "Content-Type: application/x-www-form-urlencoded",
 
            'content' => $body,
 
            'follow_location' => false) );
 
         $context  = stream_context_create($opts);
 
         $url = self::URL.'Login';
 
            $result = file_get_contents($url, FALSE, $context);
 
            $result = json_decode($result);
 
            if($result -> responseStatus == 'OK')
            {
                $this -> token = $result -> token;
 
                return TRUE;
            }
            else
            {
                throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
            }
    }
 
    public function __destruct()
    {
        $this -> connecting('Logout');
    }
 
    public function connecting($action, $body = array())
    {
        $delimiter = '----'.uniqid();
 
        $body['token'] = $this -> token;
 
        $body = BodyPost::Get($body, $delimiter);
 
        $opts = array('http' =>
                array(
                    'method'  => 'POST',
                    'header'  => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                    'content' => $body,
                    'follow_location' => false
                    )
                  );
        $context  = stream_context_create($opts);
 
        $url = self::URL.$action;
 
        $result = file_get_contents($url, FALSE, $context);
 
        $headers = $this -> parseHeaders($http_response_header);
 
        if($headers['Content-Type'][0] == 'application/json')
        {
            return json_decode($result);
        }
        else
        {
            return $result;
        }
    }
 
    private function parseHeaders($headers)
    {
        // פונקציה שמקבלת מערך של שורות הכותרות
        // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
 
 
        // מערך הכותרות
        $head = array();
 
        foreach( $headers as $k=>$v )
        {
            $t = explode( ':', $v, 2 );
 
            if( isset( $t[1] ) )
            {
                if($t[0] == 'Set-Cookie')
                {
                    $CookiesArr = array();
 
                    $cookies = explode( ';', $t[1]);
 
                    foreach($cookies as $cookie)
                    {
                        $c = explode( '=', $cookie);
 
                        if( isset( $c[1] ) )
                        {
                            $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                        }
                        else
                        {
                            $CookiesArr[] = trim( $c[0] );
                        }
                    }
 
                    $head[ trim($t[0]) ] = $CookiesArr;
                }
                elseif($t[0] == 'Content-Type')
                {
                    $arr = array();
 
                    $children = explode( ';', $t[1]);
 
                    foreach($children as $child)
                    {
                        $c = explode( '=', $child);
 
                        if( isset( $c[1] ) )
                        {
                            $arr[ trim($c[0]) ] = trim( $c[1] );
                        }
                        else
                        {
                            $arr[] = trim( $c[0] );
                        }
                    }
 
                    $head[ trim($t[0]) ] = $arr;
                }
                else
                {
                    $head[ trim($t[0]) ] = trim( $t[1] );
                }
            }
            else
            {
                $head[] = $v;
                if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                {
                    $head['reponse_code'] = intval($out[1]);
                }
            }
        }
        return $head;
    }
}


$con = new connecting_to_yemot_api('07*****','****');
$token = "07******:*****";



$File_list = $con -> connecting('GetSession',

?>