
23-02-2007, 14:39
|
|
|
|
חבר מתאריך: 17.05.05
הודעות: 7,321
|
|
|
בעיה עם preg_match, הפונקציה לא עוברת על כל המחרוזת + ב-UTF8 שני תוים בעברית נחשבים 1
כתבתי ביטוי מסוים בפונקציה preg_match וביקשתי שזה יחפש אותו במחרוזת. הפונקציה מוצאת את הביטוי אבל רק פעם אחת, ויותר היא לא מחפשת את הביטוי במחרוזת.
איך אפשר לעשות שהפונקציה תעבור על כל המחרוזת?
ועוד שאלה:
נתקלתי בבעיה הנ"ל כשניסיתי לצמצם אורך של מחרוזת שמכילה עיברית.
בגלל שכשהקידוד הוא utf-8, אז כל תו בעיברית לוקח 2 בתים, והוא נחשב כ-2 תווים (במקום תו אחד). לכן אם למשל משתמשים בפונקציה strlen על מחרוזת למציאת אורכה, במידה ואם היא תכיל עיברית, האורך שלה יהיה גדול ממה שאמור להיות (כאילו שהטקסט בעיברית שנמצא במחרוזת כתוב עוד פעם נוספת...) וממה שנראה לעין.
(ד"א בפונקציה strlen שב-JavaScript זה לא קורה, זה נותן את האורך האמיתי)
למישהו יש פיתרון אחר מהשימוש בביטוי רגולרי עם הפונקציה preg_match ?
תודה מראש
|