עבור לתוכן

המרת טקסט מג'יבריש לעברית PHP

Featured Replies

פורסם

שלום,

טקסט מג'יבריש לעברית אני ממיר כך:

<?php    $text = iconv("UTF-8","ISO-8859-1", "ãéðä");    echo $text;?>

וזה עובד. כאשר בדיוק אותה המחרוזת בג'יבריש נמצאת בקובץ טקסט, הענינים מסתבכים.

זה הקוד להמרה:

<?php    header('Content-Type: text/html; charset=windows-1255');     iconv -f WINDOWS-1255 -t UTF8 test.txt > converted.txt;    $myFile = 'test.txt';    $myHandle = fopen($myFile,'r');    $myText = fread($myHandle, filesize($myFile));    $ridComma = explode(',',$myText);    foreach($ridComma as $item)    {        $text = iconv("UTF-8","ISO-8859-1", $item);        echo $text;    }    fclose($myHandle);?>

וזו הודעת השגיאה שאני מקבל:

Parse error: syntax error, unexpected 'WINDOWS' (T_STRING) in C:\xampp\htdocs\test\test.php on line 3

מישהו יכול להסביר לי מדוע?

תודה

פורסם

לא נראה לי ש iconv -f WINDOWS-1255 -t UTF8 test.txt > converted.txt זה פקודה ב PHP...

למה יש לך את הלולאה שמפרידה את התוכן בפסיקים ?

פורסם

כתבת שם את הפקודה בלי סוגריים ובלי פרמטרים ובלי שום סינטקס, ברור שהיא לא תעבוד.

זה נראה כאילו מצאת את השורה הזאת מאיזושהי דוגמה בגוגל (שדיברה על קריאה ישירה לסקריפט iconv דרך ה-shell) ועשית לה קופי פייסט בלי להבין כלכך מה אתה עושה...

http://php.net/manual/en/function.iconv.php

בלי קשר, למה אתה מנסה להמיר טקסט ל-windows-1255? אתה תקוע בשנות ה-2000 ?

פורסם
  • מחבר

נכון :-(

עברתי על פני מדריכים, קיבלתי עצות וניסיתי לשנות דרך PHP, windows ואיפה לא... נשאר לי קוד מבולבל משהו. הנה הקוד המקורי:

<?php

$myFile = 'test.txt';

$myHandle = fopen($myFile,'r');

$myText = fread($myHandle, filesize($myFile));

$ridComma = explode(',',$myText);

$text = iconv("UTF-8","ISO-8859-1", $item);

echo $text;

fclose($myHandle);

?>

אותה הודעת שגיאה מתקבלת רק בשורה 6 במקום בשורה 8 )-:

הבעיה היא שכאשר אני מציב את מחרוזת הג'יבריש בקוד, אני מקבל המרה לעברית אך אותו קוד בקובץ טקסט מוציא הודעת שגיאה !

מהתחקיר שביצעתי עולה שקובץ הטקסט נשמר לא נכון ! ב win7 יש לי 4 אפשרויות לשמירת טקסט ובכולן קיבלתי את הודעת השגיאה הזו. יש דרך להגדיל את מגוון האפשרויות לשמירת קובץ טקסט ב windows?

- - - תגובה אוחדה: - - -

כדי שלא ישאלו אותי למה אני מציב את המחרוזת בקובץ טקסט ;). לצורך מחרוזת בודדת די לי להציב את המחרוזת בקוד אך לצורך 250,000 שמות בעברית ששמרתי והפכו ל ג'בריש עלי להכניס את הפעולה ללולאה.

פורסם

יש דרך להגדיל את מגוון האפשרויות לשמירת קובץ טקסט ב windows?

כן, להשתמש בעורך נורמלי כמו Notepad++ או Sublime Text

אני שואל למה אתה לא שם קטע קוד בתוך טאגים של code בפורום כדי שנוכל להבין מה אתה עושה באמת.

פורסם
  • מחבר

בפתיחת האשכול הצבתי את הקוד בין תגי קוד וכל האצווה יצאה לי שורה אחת. בנוסף ל 2 השורות המיותרות והלולאה המיותרת אף היא, לא הבנתי בעצמי מה העליתי :-(.

הקוד כפי שהעליתי בהודעות הבאות יצא לא צבעוני ושורה אחר שורה אבל, אני מסכים, מימין לשמאל במקום משמאל לימין.

להבא אקפיד להעלות קוד בין התגים הנחוצים ואם הקשיתי עליך, עמך הסליחה.

notepad++ הינו הכתבן עימו אני עובד מעשה של יום יום. ניתן לשמור בו קוד לכל שפות המחשב המוכרות אך אינני מוצא בו אפשרות לשמירה בקידוד utf-8 או windows-1222 (לא דייקתי בשם הקידוד) ובודאי לא את אפשרויות קידוד המצויות במדריך של PHP. תוכל בבקשה להסביר לי איך שומרים קובץ טקסט בקידוד ISO-8859-1/ בהנחה שזו כוונת המחבר, היינו, ששמירת הטקסט באחד מסוגי הקידוד הללו ימנעו את הודעת השגיאה דעסקינן.

פורסם

א. העתקתי את הקוד שלך ממקודם ופשוט שמתי אותו בין CODE, בו נראה איך יוצא. כן, טוב, התוכנות פורום קצת דפוקה אבל סה"כ לא רע (יכולתי להעתיק קודם החוצה ואז לשים).

[RIGHT][COLOR=#333333]<?php[/COLOR]
[COLOR=#333333]$myFile = '[/COLOR][COLOR=#333333]test.txt[/COLOR][COLOR=#333333]';[/COLOR]
[COLOR=#333333]$myHandle = fopen($myFile,'r');[/COLOR]
[COLOR=#333333]$myText = fread($myHandle, filesize($myFile));[/COLOR]
[COLOR=#333333]$ridComma = explode(',',$myText);[/COLOR]
[COLOR=#333333]$text = iconv("UTF-8","ISO-8859-1", $item);[/COLOR]
[COLOR=#333333]echo $text;[/COLOR]
[COLOR=#333333]fclose($myHandle);[/COLOR]
[COLOR=#333333]?>[/COLOR][/RIGHT]


ב. אין לי כרגע NP++ מותקן, תעבור על כל התפריטים למעלה, באחד מהם יש לך מיליון אפשריות של המרות קידוד.

פורסם

לקובץ הנוכחי:

TRa0iju.png

לכל הקבצים החדשים תערוך בהגדרות של התוכנה:

kEFFOp6.png

פורסם

כמו שהראו לך פה, תשמור את הקובץ ב-UTF-8 (without BOM) ותעיף לכל הרוחות את ההמרות המוזרות שאתה עושה שם.. זה מיותר לחלוטין, כבר שנים שהאינטרנט פשוט עובד ב-UTF-8 ואף אחד לא משתמש בשום קידוד אחר.

פורסם

אולי כדאי להגיד את זה לאתר של פלונטר (שתקוע בשנות ה 90, וכנראה לא רק בהיבטים של קידוד הטקסט באתר...)

פורסם

פלונטר אכן תקוע בשנות ה-90, לא הייתי נותן אותו בתור דוגמה לשום דבר חיובי...

פורסם
  • מחבר

תמיד עבדתי ב utf-8 עד שהסתבכתי עם נושא הקידוד ובאחד המדריכים היה כתוב בפירוש שהקידוד היחיד שעובד בעברית הוא windows-1122 (שכחתי את השם המדויק ואני מבין שאין טעם לטרוח..).

אני מאוד מודה לכם על הטרחה והמאמץ הכן לחלץ אותי מים המדריכים והעצות בהם הסתבכתי.

אנסה לשמור באמצעות הקידוד ב notepad++ שהוא כלי העבודה העיקרי שלי וכפי הנראה טרם למדתי את כל סגולותיו...

פורסם

הקידוד היחיד שהוא לא unicode כמובן... utf-8, utf-16 וכו' כמובן תומכים בעברית באופן מובנה.

פורסם
  • מחבר

הפתרון האולטימטיבי... תודה מקרב לב.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים