מסתבר שPHP לא אוהב את האות נ (וגם בשפות אחרות יש אותיות שהוא לא אוהב)

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

מסתבר שהסיבה לבאג היתה שהפונקציה שהיתה אמורה להחליף בין תווים של סוף שורה לרווח רגיל –  preg_replace('/\s+/', ' ', $filtered), לא עובדת בצורה המצופה ממנה, כלומר כמו – preg_replace('/[\r\n\t ]+/', ' ', $filtered)
, כאשר משתמשים בקידוד מסוגUTF-8.

מסתבר שכאשר משתמשים ב '/\s+/' לPHP כלל לא אכפת מההקשר, מהיצוג הפנימי של המחרוזרת כפי שהיא מיוצגת בזיכרון המחשב, והוא סתם מחליף מספר אחד במספר שני. בגירסא השניה משום מה הוא כן מתחשב בהקשר…. הבעיה דרך אגב, דווחה כבר לפני יותר משנה באחד מאתרי התיעוד של PHP.

למה דוקא 'נ'? כי היצוג הפנימי שלה מורכב משתי ספרות שהשניה מביניהן זהה למספר שמייצג סוף שורה.

על זה אמרו רבותינו גרררררררררררר

תגובה אחת “מסתבר שPHP לא אוהב את האות נ (וגם בשפות אחרות יש אותיות שהוא לא אוהב)”

  1. אני רואה שהפוסט ישן, אבל למי שמחפש…
    פשוט לשנות את האות "נ" לערך אחר כמו "hebrewNUN"
    לעשות את ה REPLACE כרגיל ואחרי זה לשנות בחזרה את hebrewNUN ל "נ"

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים