בדיקה שערכתי באקסל 2016 פתחה את הקובץ בעברית תקינה (לאחר התראה על חובת הזהירות מקבצים שמקורם אינו ידוע וכו')
מצורף גם בקובץ בחלק מהשרתים הגירסה הזו עובדת: או זו:
קוד: בחירת הכל
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="he" xml:lang="he" dir="rtl">
<head>
<title>קבלת רשימת תפוצה בקובץ אקסל</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="content-language" content="he" />
</head>
<body>
בסייעתא דשמיא
<br /> טופס להורדת קובץ אקסל של רשימת תפוצה
<br /> פותח על ידי "סל שרותים מתקדמים" , אימייל support@salsm.com
<br /> הרשות נתונה להעתיק אך נא לשמור על הקרדיט ולא למחוק שורה זו
<?php
$DID= $_POST['DID'] ;//מערכת
$password = $_POST['PASS'] ;//סיסמא
$templateId = $_POST['templateId'];//תבנית
$template_name='';//שם התבנית
if( isset($DID) && isset($password) )
{
$token = token_yemot($DID,$password);//טוקן
}else{
$token = $_POST['token'];
}
if( ! isset(
$token ))
{
print '<FORM ACTION="" METHOD="POST" ENCTYPE="multipart/form-data">
<P>מספר מערכת: <INPUT TYPE=TEXT NAME="DID" SIZE=20 STYLE="width: 1.75in; height: 0.3in" />
</P>
<P>סיסמה: <INPUT TYPE=PASSWORD NAME="PASS" SIZE=20 STYLE="width: 1.75in; height: 0.3in" />
</P>
<P><INPUT TYPE=SUBMIT NAME="submit" VALUE="התחבר" STYLE="width: 0.74in; height: 0.37in" />
</P>
</FORM>';
}
else
{
//קבלת רשימות התפוצה
$templates = yemot_GetTemplates($token);
//print_r ($templates);
print '<FORM ACTION="" METHOD="POST" ENCTYPE="multipart/form-data">
<p><INPUT TYPE="hidden" NAME="token" VALUE="'.$token. '" />
</p>
<select id="templateId" name="templateId">';
print '<option value="" >בחר תבנית מהרשימה</option>';
foreach($templates as $template )
{
$template['description'] = mb_convert_encoding( $template['description'] ,"UTF-8"); //הגדרת קידוד עברית
$template['description'] =str_replace(
array("?" , "|" , '"' , "%" , '&' , "'" , '*' , ',' , ':' , '<' , '>' , '/' , '\\' , '{' , '}' , '~' ), "_" ,$template['description']) ;//נטרול תוים לא חוקיים משם התבנית
print '<option value="'.$template['templateId'].'" >תבנית מספר: '.$template['templateId'].' '.$template['description'].'</option>';
if ($templateId == $template['templateId'])
{$template_name = $template['description'];}
}
print '</select>
<P><INPUT TYPE=SUBMIT NAME="submit" VALUE="צור קובץ" STYLE="width: 0.74in; height: 0.37in" />
</P>
</FORM>';
if(! isset( $templateId ) or $templateId == '' )
{
print "<p>עדיין לא נבחרה רשימה</p>";
}
else
{
$Entries = yemot_GetTemplateEntries($token ,$templateId );//קבלת רשימת התפוצה
//print '<pre>';
//print_r ($Entries);
$filename = mb_convert_encoding("תבנית ","UTF-8").$templateId. " ".$template_name.".xls";//שם הקובץ שייוצר
if( ! is_dir( 'xls' ) ){ mkdir( 'xls' ); }//יצירת התיקייה אם עדיין לא נוצרה
$handle = fopen("xls/".$filename, "w");//יצירת הקובץ
//[Content_Types].xml
fwrite($handle, mb_convert_encoding( '<!DOCTYPE html>
<html><head>
<meta charset="utf-8" />
<title>קובץ רשימת תפוצה, נוצר בעזרת פיתוח של "סל שרותים מתקדמים"</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>',"UTF-8")."\r\n");//כתיבת headers
fwrite($handle, mb_convert_encoding( '<body dir="rtl"><table><thead><tr><th>מזהה רשומה</th><th>מספר סידורי</th><th>מספר טלפון</th><th>מצב</th><th>שם</th><th>מידע נוסף</th></tr></thead><tbody>' , "UTF-8")."\r\n");//כתיבת שורת הכותרת
foreach( $Entries as $Entri )
{
$Entri['blocked']==1? $Entri['blocked']='חסום' : $Entri['blocked']='פעיל' ;
$Entri = implode( "</td><td>" , $Entri );//הפיכת המערך לרשומה מופרדת בתגיות טאבים
fwrite($handle, mb_convert_encoding( '<tr><td>' . $Entri . '</td></tr>' , "UTF-8" )."\r\n");//כתיבת הרשומה לקובץ
}
fwrite($handle, mb_convert_encoding( '</tbody></table></body></html>' , "UTF-8" ));//סגירת הטבלה
fclose($handle);//סגירת הקובץ
//הדפסת קישור לקובץ שנוצר
print '<p>הקובץ: <b>'.$filename. '</b> מוכן! <a href="xls/' . $filename .'" > להורדה לחץ כאן </a></p>';
}
}
?>
</body>
</html>
<?php
//פונקציה להתחברות לימות שמחזירה את הטוקן
//הארגומנטים הנדרשים: מספר מערכת, סיסמא.
function token_yemot($DID=0 , $password=0)
{
//בדיקה האם התקבלו הארגומנטים
if ($DID==0 or $password==0)
{
echo "לא הוזן מספר מערכת או סיסמא" ;
}else{
//הכרזה על משתנה
$url_yemot="https://www.call2all.co.il/ym/api";
//הצבת הכתובת להתחברות במשתנה $url
$url= "$url_yemot/Login?username=$DID&password=$password";
//פונקציית ההתחברות, התשובה (מחרוזת json) מוחזרת למשתנה $token
$token = file_get_contents($url);
//פענוח הjson של תשובת ימות והצבתו לתוך מערך
$token = json_decode($token,TRUE);
//בדיקה האם אכן יש אישור להתחברות,
if ($token['responseStatus'] != "OK")
//אם לא
{
echo "שגיאה בקבלת הטוקן מהמערכת:";
//ואם כן…
}else{
//הצבת הטוקן לתוך המשתנה והחזרתו
$token = $token['token'];
return $token ;
}
}
}
//פונקצייה לקבלת כל התבניות הפונקציה מחזירה מערך של כל הרשימה
//הארגומנטים הנדרשים: טוקן
function yemot_GetTemplates($token=0)
{
//בדיקה האם התקבלו הארגומנטים
if ($token===0 )
{
echo "id_list_message=t-לא הוזן טוקן& ";
//אם התקבלו הארגומנטים ,ממשיך…
}else{
//הכרזה על משתנה
$url_yemot="https://www.call2all.co.il/ym/api";
//הצבת הכתובת להתחברות במשתנה $url
$url= "$url_yemot/GetTemplates?token=$token";
//print $url;
//פונקציית ההתחברות, התשובה (מחרוזת json) מוחזרת למשתנה $templates
$templates = file_get_contents($url);
//פענוח הjson של תשובת ימות והצבתו לתוך מערך
$templates = json_decode($templates,TRUE);
//בדיקה האם אכן יש אישור להתחברות,
if ($templates['responseStatus'] != "OK")
//אם לא
{
echo "שגיאה בקבלת רשימת התבניות מהמערכת ";
//ואם כן…
}else{
//הצבת הרשימה לתוך המשתנה והחזרתה כמערך
$templates = $templates['templates'];
return $templates ;
}
}
}
//פונקצייה לקבלת רשימת תפוצה מסוימת הפונקציה מחזירה מערך של כל הרשימה
//הארגומנטים הנדרשים: טוקן, מספר תבנית בימות.
function yemot_GetTemplateEntries($token=0,$templateId=0)
{
//בדיקה האם התקבלו הארגומנטים
if ($token===0 or $templateId<10000)
{
echo "לא הוזן מספר תבנית תקני בימות המשיח, ,שימו לב שמספר התבנית אינו המספר הסידורי שלו במערכת שלכם , אלא מספר מזהה פנימי בימות המשיח";
//אם התקבלו הארגומנטים ,ממשיך…
}else{
//הכרזה על משתנה
$url_yemot="https://www.call2all.co.il/ym/api";
//הצבת הכתובת להתחברות במשתנה $url
$url= "$url_yemot/GetTemplateEntries?token=$token&templateId=$templateId";
//פונקציית ההתחברות, התשובה (מחרוזת json) מוחזרת למשתנה $Entries
$Entries = file_get_contents($url);
//פענוח הjson של תשובת ימות והצבתו לתוך מערך
$Entries = json_decode($Entries,TRUE);
//בדיקה האם אכן יש אישור להתחברות,
if ($Entries['responseStatus'] != "OK")
//אם לא
{
echo "שגיאה בקבלת הרשימה מהמערכת , וודאו כי הזנתם מספר תבנית תקני, ,שימו לב שמספר התבנית אינו המספר הסידורי שלו במערכת שלכם , אלא מספר מזהה פנימי בימות המשיח";
//ואם כן…
}else{
//הצבת הרשימה לתוך המשתנה והחזרתה כמערך
$Entries = $Entries['entries'];
return $Entries ;
}
}
}
?>