דף 1 מתוך 1

דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 12:19 21/03/2018
על ידי מנחם מענדל מענדי
דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 22:11 21/03/2018
על ידי חוקר
דחוף!
למה אצלך הכל דחוף?
תבקש לפני הדקה האחרונה!

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 22:17 21/03/2018
על ידי boyoss
צריך למהר להביא את הגואל בזכות אהבת ישראל, אין זמן..

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 22:49 21/03/2018
על ידי 011371
כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה

וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 12:50 22/03/2018
על ידי מנחם מענדל מענדי
כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה

וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
אני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.
תודה

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 14:10 22/03/2018
על ידי רדיופון
כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה

וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
אני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.
תודה

קוד: בחירת הכל

<?php


$DID = // מספר מערכת
$password = // סיסמת מערכת
$path1 = // מס' שלוחה
$A = //כאן לכתוב את ההגדרה שברצונך להוסיף לקיים, לדוגמא:
"password=1234
enter_id=yes"
;


$con = @new connecting_to_yemot_api($DID, $password);

if($result -> responseStatus != 'OK'){

$body = array
(
// נתיב הקובץ
'path' => "ivr/$path1/ext.ini",
);

$a = $con -> connecting('DownloadFile', $body);


// יצירת הקובץ
$File = new oFile('ext.ini', 'text/plain', "$a
$A");

$body = array
(
'path' => "ivr/$path1/ext.ini",
'convertAudio' => 0,
'fileUpload' => $File
);

$b = $con -> connecting('UploadFile', $body);

print_r($b);
}

else{
print "id_list_message=t-";
echo "קרתה תקלה, נסה מאוחר יותר, ";
}

// print_r($a);

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 = 'https://www.call2all.co.il/ym/api/';

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
{
echo "משתמש או סיסמא שגויים";
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;
}
}


?>

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 17:31 22/03/2018
על ידי 011371
כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה

וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
אני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.
תודה

קוד: בחירת הכל

<?php


$DID = // מספר מערכת
$password = // סיסמת מערכת
$path1 = // מס' שלוחה
$A = //כאן לכתוב את ההגדרה שברצונך להוסיף לקיים, לדוגמא:
"password=1234
enter_id=yes"
;


$con = @new connecting_to_yemot_api($DID, $password);

if($result -> responseStatus != 'OK'){

$body = array
(
// נתיב הקובץ
'path' => "ivr/$path1/ext.ini",
);

$a = $con -> connecting('DownloadFile', $body);


// יצירת הקובץ
$File = new oFile('ext.ini', 'text/plain', "$a
$A");

$body = array
(
'path' => "ivr/$path1/ext.ini",
'convertAudio' => 0,
'fileUpload' => $File
);

$b = $con -> connecting('UploadFile', $body);

print_r($b);
}

else{
print "id_list_message=t-";
echo "קרתה תקלה, נסה מאוחר יותר, ";
}

// print_r($a);

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 = 'https://www.call2all.co.il/ym/api/';

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
{
echo "משתמש או סיסמא שגויים";
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;
}
}


?>
כל הכבוד על הסבלנות להכין כזו דוגמא מפורטת בימים כ"כ לחוצים של ערבי פסחים

רק הדוגמא

קוד: בחירת הכל

$b = $con -> connecting('UploadFile', $body);

print_r($b);
משום מה לא הצלחתי להשתמש עם הפקודה print_r על מה שהמחלקה מחזירה בעת העלאת קובץ
לך זה עובד?

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 17:43 22/03/2018
על ידי רדיופון
כל הכבוד על הסבלנות להכין כזו דוגמא מפורטת בימים כ"כ לחוצים של ערבי פסחים
זה היה מוכן לי מראש רק שיפצתי קצת... :)
רק הדוגמא

קוד: בחירת הכל

$b = $con -> connecting('UploadFile', $body);

print_r($b);
משום מה לא הצלחתי להשתמש עם הפקודה print_r על מה שהמחלקה מחזירה בעת העלאת קובץ
לך זה עובד?
לי זה עובד מצוין.

זה התגובה שקיבלתי:

קוד: בחירת הכל

stdClass Object ( [responseStatus] => OK [path] => ivr/ext.ini [size] => 46 [yemotAPIVersion] => 6 )

Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה

נשלח: 19:02 22/03/2018
על ידי 011371
תודה
הבנתי
הוא מחזיר אובייקט של גייסון ולא מערך רגיל