PHP תומכת בעברית בצורה יוצאת דופן, וללא ספק היא אחת השפות שהכי קל לעבוד איתן בעברית (תודות למפתחיה הישראלים). היא מספקת פונקציה שהופכת טקסט בעברית לטקסט ויזואלי (קידוד של עברית ויזואלית), תוך שמירה על מבנה המילים והמשפטים בעברית גם כאשר בטקסט משולבים אנגלית ומספרים. פונקציה זו היא hebrev(), שמקבלת בארגומנט הראשון את הטקסט ובארגומנט השני את מספר התווים שיהיו בכל שורה (אופציונלי). הפונקציה יודעת לפרק את השורות הארוכות לשורות קצרות יותר באורך שנקבע לה.
פונקציה נוספת חשובה (לא רק לעברית) היא nl2br(), שהופכת סימנים של ירידת שורה בקוד של PHP (\n) לסימן ירידת שורה ב-HTML (<BR>). ב-PHP4 הפונקציה הופכת ל-<br \> כדי לתמוך גם בירידת שורה ב-XHTML.
הפונקציה hebrevc() היא שילוב של 2 הפונקציות שהזכרנו. היא הופכת את הטקסט בעברית לטקסט ויזואלי (אפשרי עם חיתוך שורות), והופכת כל \n ל-<BR> (ב-PHP4 ל-<br \>).
חשוב לציין כי פונקציות אלו (hebrev() ו-hebrevc()) נועדו עבור קידוד של עברית ויזואלית בלבד, ואין צורך להשתמש בהם כאשר משתמשים בקידוד לוגי כי הקידוד הלוגי דואג בעצמו לעברית. בדר"כ כבר לא משתמשים בקידוד ויזואלי כאשר משתמשים בעברית, ולכן כיום פונקציות אלו לא נמצאות ממש בשימוש בדפי עברית.
תגובות בנושא
עברית + MySQL
06-12-02 17:01 מיכאל
#263
למיטב הבנתי יש בעיה בשילוב של MySQL 3 ועברית. האם ניתן דרך PHP לפתור את הבעיה ולאחסן ערכים עבריים במסד נתונים?
עברית ב-MySQL
06-12-02 17:02 אלי חן (מנהל)
#266
אולי בגרסאות קודמות של MySQL 3 הייתה בעייה, אבל אני השתמשתי ב-MySQL 3.23.53 ולא הייתה לי בעייה להכניס ערכים בעברית.
בכלל, יש כעת MySQL גרסה 4... מומלץ!!!
עברית ב-mysql...
01-11-02 01:01 עמיעד
#541
אכן אין בעייה להכניס ערכים
אבל כל מי שיינסה לעשות שאילתה עם
order by
לשדות בעברית(לא תראו הבדל עם קצת שדות אלא עם לפחות 30) ייקבל מעורבב ולא מסודר...
אני פתרתי את זה ע"י הכנסה למערך וסידור עם
ksort...
תגובה: עברית ב-MySQL
01-11-02 01:01 אלי חן (מנהל)
#543
אין ל-MySQL בעיה לסדר תוצאות שאילתות לפי טקסט בעברית.. הבעיה שאתה מדבר עליה נובעת מכמה סיבות:
הבעיה קורית רק בשדות שמוגדרים כ-TEXT (או המקבילות שלה באורכים שונים), וזה מפני ששדות מסוג TEXT מסודרים לפי קידוד שמוגדר ל-MySQL (ברירת המחדל בדר"כ הוא latin1), והקידוד הזה יוצר בלאגן בסידור של ערכים בעברית.
ישנם מספר אפשרויות לפתירת הבעיה:
1. שינוי הקידוד של MySQL לקידוד תומך עברית.
2. סידור כבינארי (למשל: ORDER BY BINARY text_field).
3. הגדרת השדה כ-BLOB (או המקבילות שלה באורכים שונים), שכברירת מחדל מוגדרת כ-BINARY.
אני ממליץ לך לעשות את 2 או 3..
עברית בMYSQL
09-12-03 01:01 איווט זפרלו
#1098
שלום לכם
אני חדשה ב SQL .אני רוצה לעשות מיני ציט ועשיתי טבלה עם 3 שדות :id, שם ומסר.כתבתי כמה שמות ומסרים בתוך הטבלה הנתונים בעברית.
ב SCRIPT שהכנסתי בדף האתר כתבתי שאלון קטן עם שם ,מסר ,לשלוח ,והנה הבעיה: כשאר אני עונה על השאלון בתוך האתר, השם מוער טוב בעברית אך המסר לא -אז שמה שכתבתי בתוך טבלת הניתונים (שם ומסר)מופיעים יפה בעברית.אז למה לא בתוך האתר?
יתרה מזה כשאר אני רושמת באתר את המסר במקום של השם וההפך אז המסר נקלט טוב בעברית אבל השם לא.
יש למישהו הסברים ופתרונות לבעיה זאות ?
אני מודה על כל תשובה
(האתר שלי בLYCOS)
איווט
שמירת טקסטים והצגתם
09-12-03 18:02 אלי חן (מנהל)
#1129
ללא קשר לעברית..
1. בעת שמירת נתונים ב-MySQL דרך PHP, השתמשו ב-mysql_escape_string לכל מחרוזת המתקבלת מהמשתמש (למשל מטופס).
2. בעת הצגת פלט טקסט בפורמט HTML, השתמשו בפונקציה htmlspecialchars שהופכת תווים מיוחדים ב-HTML.
2 הכללים האלה בוודאי יעזרו לך..
form to mail PHP בעברית
02-11-03 08:01 דור
#1302
שלום,
אני מעצב אתרים, ודי חדש לPHP.
אני מנסה לבנות טופס מאוד פשוט של form to mail.
למרות שאני משתמש בפונקציה שהופכת את המשתנים לעברית ויזואלית, אני מקבל גיבריש.
תוכל אולי לומר לי למה ?
אודה לך מאוד,
חג שמח,
דור.