דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
למה אצלך הכל דחוף?דחוף!
תבקש לפני הדקה האחרונה!
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
צריך למהר להביא את הגואל בזכות אהבת ישראל, אין זמן..
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה
וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה
וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
אני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה a
ניתן לשמור אותו לערוך אותו להעלותו מחדש וכולי כמו כל מחרוזת טקסט שנמצא במשתנה
וגם להשים אותו בתוך הקובץ שהמחלקה ofile שמצורפת למחךקה הנ"ל יוצרת
ואז להעלותו שוב דרך המחלקה
תודה
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
אני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה 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: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
כל הכבוד על הסבלנות להכין כזו דוגמא מפורטת בימים כ"כ לחוצים של ערבי פסחיםאני ממש לא מצליח. תוכל להעלות לכאן את הקוד כי לי זה לא הולך.כשאתה מוריד קובץ באמצעות הדוגמא ש"מאזין נלהב" צירף למחלקה ,
תוכן הקובץ מוחזר למשתנה 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);
לך זה עובד?
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
זה היה מוכן לי מראש רק שיפצתי קצת...כל הכבוד על הסבלנות להכין כזו דוגמא מפורטת בימים כ"כ לחוצים של ערבי פסחים
לי זה עובד מצוין.רק הדוגמאמשום מה לא הצלחתי להשתמש עם הפקודה print_r על מה שהמחלקה מחזירה בעת העלאת קובץקוד: בחירת הכל
$b = $con -> connecting('UploadFile', $body);
print_r($b);
לך זה עובד?
זה התגובה שקיבלתי:
קוד: בחירת הכל
stdClass Object ( [responseStatus] => OK [path] => ivr/ext.ini [size] => 46 [yemotAPIVersion] => 6 )
Re: דחוף!איך במחלקה של מאזין נלהב אני יכול לערוך קובץ קיים ולא להעלות קובץ חדש שידרוס את הישן. תודה
תודה
הבנתי
הוא מחזיר אובייקט של גייסון ולא מערך רגיל
הבנתי
הוא מחזיר אובייקט של גייסון ולא מערך רגיל
מי מחובר
משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 3 אורחים