הורדת קובץ csv של רשימת התפוצה

קביעתא
הודעות: 377
הצטרף: 16:54 04/04/2016
מיקום: ארץ ישראל
יצירת קשר:

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי קביעתא » 11:49 12/04/2018

אני לא מדבר על הדפדפן אלא על הקובץ שיורד
גם אצלי הקובץ CSV יורד לא בקידוד טוב
אבל יש פתרון לפתוח בפנקס רשימות ולשמור בשם קידוד UTF-8
והפיתרון היותר טוב הוא להגדיר את קידוד הקובץ, היה לי גם בעיות לרוב והכל סודר על הצד היותר טוב עם קידוד
הצלחת לתקן בקובץ הזה?
אז אולי תבקש מ @המוקד החרדי שיסדר את זה

אאד
הודעות: 1650
הצטרף: 15:20 11/05/2017
מיקום: ישראל
יצירת קשר:

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי אאד » 12:01 12/04/2018

גם לי ירד הכל בג'יבריש

BY6199
הודעות: 1635
הצטרף: 13:11 08/01/2017

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי BY6199 » 12:28 12/04/2018

גם אצלי הקובץ CSV יורד לא בקידוד טוב
אבל יש פתרון לפתוח בפנקס רשימות ולשמור בשם קידוד UTF-8
והפיתרון היותר טוב הוא להגדיר את קידוד הקובץ, היה לי גם בעיות לרוב והכל סודר על הצד היותר טוב עם קידוד
הצלחת לתקן בקובץ הזה?
אז אולי תבקש מ @המוקד החרדי שיסדר את זה
לא בקובץ זה, היה לי קבצים עם בעיות וטופלו בקידוד

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי 011371 » 13:07 12/04/2018


מדבר על הטופס
בדפדפן שלי זה נצפה מצוין בעברית
אני לא מדבר על הדפדפן אלא על הקובץ שיורד
הוספתי קידוד לקובץ המקורי
מצו"ב
תבדקו אם זה פותר לכם את הבעיה
add.csv.php.zip
(2.74 KiB) הורד 190 פעמים

קביעתא
הודעות: 377
הצטרף: 16:54 04/04/2016
מיקום: ארץ ישראל
יצירת קשר:

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי קביעתא » 13:16 12/04/2018

בדפדפן שלי זה נצפה מצוין בעברית
אני לא מדבר על הדפדפן אלא על הקובץ שיורד
הוספתי קידוד לקובץ המקורי
מצו"ב
תבדקו אם זה פותר לכם את הבעיה
add.csv.php.zip
בשבילי עדיין לא

אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי אהבת ישראל » 13:23 12/04/2018

בס"ד

בסייעתא דשמיא ובזכות המשתמש המסור @011371 ניתן לבצע את הפעולה גם במערכת ניהול המתקדם של ivr2 בשלוחה 69 בתפריט שבא לאחר כניסה בהצלחה לניהול.

בברכה
מנחם

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי 011371 » 13:28 12/04/2018

אני לא מדבר על הדפדפן אלא על הקובץ שיורד
הוספתי קידוד לקובץ המקורי
מצו"ב
תבדקו אם זה פותר לכם את הבעיה
add.csv.php2.zip
(2.75 KiB) הורד 194 פעמים
בשבילי עדיין לא
בקובץ הזה גם שם הקובץ עובר קידוד
add.csv.php2.zip
(2.75 KiB) הורד 194 פעמים

קביעתא
הודעות: 377
הצטרף: 16:54 04/04/2016
מיקום: ארץ ישראל
יצירת קשר:

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי קביעתא » 13:36 12/04/2018

העלתי לשרת שלי ולא עזר !
איזה גירסת אופיס יש לך? לי 2010 32-bit
עריכה:
רגע יתכן וגם זה תלוי בשרת שעליו הקובץ יושב ?

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי 011371 » 20:26 12/04/2018

בדפדפן שלי זה נצפה מצוין בעברית
אני לא מדבר על הדפדפן אלא על הקובץ שיורד
גם אצלי הקובץ CSV יורד לא בקידוד טוב
אבל יש פתרון לפתוח בפנקס רשימות ולשמור בשם קידוד UTF-8
הבעיה היא שבווינדוס יש קידוד ברירת מחדל לעברית בשם PC1255 והאקסל מנסה כברירת מחדל לקרוא אותו ככזה

הפתרון היותר קל הוא לפתוח אקסל ריק
ואז בלשונית "נתונים" לבחור "קבל נתונים"←"מקובץ"←"CSV" ואז נפתח חלון לבחירת הקובץ
ולאחריו תצוגה מקדימה של תוכן הקובץ עם אפשרות להגדיר את קידוד המקור של הקובץ
שם יש לבחור UTF-8

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: הורדת קובץ csv של רשימת התפוצה

שליחהעל ידי מנחם מענדל מענדי » 14:44 13/04/2018

כן ,
העיקרון דומה למה שפירסמתי בעבר לגבי העלאת קבצי ext.ini שמשמש את המערכת של אהבת ישראל

רק צריך לשנות שתי שורות בקטע הבא

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

// יצירת הקובץ

$File = new oFile('ext.ini', 'text/plain',
file_get_contents(/* שם הקובץ או נתיבו */) );

$body = array
(
'path' => $path,
'convertAudio' => 1 ,
'fileUpload' => $File
);
לא כל כך הבנתי...

תוכל לתת דוגמה קטנה?

תודה
נניח שאתה רוצה לפרסם דוגמא לקריינות שלך לשימוש חופשי
הכנת קובץ בשם M1000.mp3 שנמצא בשרת שלך בתוך תיקיית files שבתוך התיקייה בה יושב הקוד שלנו
הקוד הבא יאפשר לכל מחייג להקיש את מספר המערכת והסיסמא שלו וכתובת השלוחה אליה הוא רוצה להעלות את קובץ התפריט הנ"ל וזה יעלה

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

<?php



/*
העלאת קובץ מוגדר מראש
לשלוחה לפי בחירת המשתמש
*/


$hangup = $_GET['hangup'];//ניתוק השיחה
if($hangup) {exit; }


//מספר מערכת וסיסמא
$DID=ReadFromYemot('DID', 't-אנא הַקישו את מספר המערכת שלכם וסולמית לסיום.', ",yes,10,9,7");
$PASS=ReadFromYemot('PASS', 't-אנא הַקישו את סיסמת המערכת שלכם וסולמית לסיום.', ",yes,,1,7");

//נתיב השלוחה אותה רוצים להגדיר
$path=ReadFromYemot('PATH','t-אנא הַקישו את כתובת השלוחה אליה אתם רוצים להעלות את הקובץ וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש כוכבית.'
, ",,,1,7,Alpha,,,*/,,,Ok,ivr,");

$filename="files/M1000.mp3";//שם ומיקום הקובץ בשרת שלכם

/*================יצירת אובייקט(מופע) חדש====================*/

$con = new connecting_to_yemot_api($DID, $PASS);

/*===============================================================*/


if($path=='ivr'){$path="ivr/M1000.wav";}
else {$path="ivr/$path/M1000.wav";}

/*===============================================================*/



/*================העלאת קובץ====================*/


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

$body = array
(
'path' => $path,
'convertAudio' => 1,
'fileUpload' => $File
);

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

if($a -> responseStatus == OK ) {print "id_list_message=t-הקובץ הועלה בהצלחה&";}

/*===============================================================*/




function ReadFromYemot($var, $message, $read=",,1,1,7,No,")
{if ($_GET[$var]) { return $_GET[$var] ;}else{
print "read=$message=$var$read"; exit; }

}
//המחלקה של "מאזין נלהב"

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
{
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;
}
}


?>
מצורף כקובץ
files_yemot.php.zip
לא הספקתי לבדוק אם זה אכן עובד
אם יש בעיה תעדכן
משום מה זה לא עובד לי. האם צריך לעשות שינוי במחלקה של מאזין נלהב מזה של העלאת קבצי טקסט רגילים?


חזור אל “פורום מפתחים API”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 6 אורחים