![]() |
שאלה | איך לעשות את זה ללא תוספות לשרת..
היי,
נתקלתי במשהו שקשה לבצע, אם אני לא אמצא פתרון פשוט יותר, אני יתחיל לכתוב פונקצייה של שעות (ולשבור תראש ><) בכל מקרה, הבעיה היא כזו: יש לי קוד XML כזה: HTML קוד:
<some do="color"> HTML קוד:
<some do="color"> PHP קוד:
קוד:
(.+?) דרך אגב, במקרה הזה יש שימוש ב3 תגים של some אבל לפעמים יש יותר .. (או פחות) פתרונות ? |
כמו שכתבתי לך בפרטי, ניתן לנסות לעבוד אולי עם group-ים של regex ולפי האינדקס של ההחלפה הראשונה, לבצע גם את ההחלפה השניה.
כיוון אחר אולי, זה לחלק את כל הסטרינג למערך של תגיות פותחות (כל אחד מה-some יהיו תא במערך) ומערך של תגיות some סוגרות. לבצע את החיפוש על המערך הזה, ולפי האינדקס שבו מצאת, להחליף גם במערך של התגיות הסוגרות. |
למה הכוונה בgroup שם REGEX ?
בכל מקרה, חשבתי אולי לצור פונקצייה שהיא דיי מקבילה לpreg_replace אך היא סופרת בתוכה את התגיות הפתחות ומדגלת לפי התוצאה שקיבלה, השאלה היא, האם יש משהו יותר שימושי? תודה :) |
תנסה אולי לבדוק שימוש ב-SimpleXML.
|
יש שם מצב לקוד לא תקין? כלומר, דברים שלא סגורים נכון? למרות שאתה יכול לעשות גם לזה בדיקה
אבל לדעתי הדרך של יגאל די נוחה במקרה הזה, אתה בונה מערך (preg_match_all) מהתגיות פתיחה, בונה עוד מערך מהתגיות סגירה (פה אתה יכול לבדוק אם הכמות איברים זהה ולדעת גם אם יש דברים לא סגורים) ואז אתה מחפש את <some do="font">, ברגע שנתקלת בו אתה מחליף באותו אינדקס במערך של התגיות סגירה את התגית ל-[/font] ויוצא מהלולאה ד"א - כדאי לך לשאול גם ב-StackOverflow הגיוני שיש ביטוי רגולארי שיתאים לזה יותר |
ציטוט:
בכל מקרה, הדוגמה שהבאתי כאן היא דוגמה פשוטה לbbcode parser הקטע שהבאתי עם התגיות הוא שלפעמים יש שימוש ב span ל font-family , color או font-size וזה יוצר בעיות שזה מחליף בצורה שזה מחליף בכל מקרה, אני אלך על הפונקצייה שרשמתי, אני אנסה לבנות אותה תודה לכולם :) אם למישהו יש פתרון, שישלח לי ה"פ :) |
ציטוט:
http://www.regular-expressions.info/brackets.html כשאתה עוטף כל match בסוגרים עגולים, ואח"כ אתה יכול לעשות Backreferences. ציטוט:
ובאופן כללי, אם אתה מפרסר משהו ארוך, הרבה פעמים regex לכל הסטרינג לא מספיק טוב לך. תצטרך לחלק אותו לתתי-סטרינגים ולפרסר כל שורה בנפרד. כלומר, אני מנסה לרמוז (בעדינות |קורץ|) שאולי כדאי לך לבדוק גם את הכיוון שהצעתי עם החזקת כל תגית במערך נפרד. אם אתה מוצא פתרון אלגנטי כלשהו, אשמח אם תביא אותו לפה כדי שנלמד :) |
ציטוט:
בניתי פונקציה מאוד נוחה, שבעצם עושה: אתה נותן לה בפרמטרים את ההתחלה של הביטוי, והסוף והיא מחפש את ההתחלה, ואת הסוף לאחר ההתחלה (אם קיימים תגי פתיחה דומים להתחלה אז היא מדלגת לפי הכמות שלהם) ומחליפה האמצע :) הפונקציה לא על המחשב הזה .. בכל מקרה, תודה לכולם.. |
כל הזמנים הם GMT +2. הזמן כעת הוא 03:54. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ