![]() |
עזרה עם regex
שלום לכולם,
אני תקוע במשהו עם ביטויים רגולרים ואני די בטוח שיש פה אנשים שיוכלו לעזור לי. בכל מקרה, יש לי textarea ואני רוצה שיהיה אפשר להכריז דרכו על פונקציות. הקטע הוא שאני צריך לפרסס את זה כדי שאני אוכל לבנות את זה מאוחר יותר. ז"א אם בן אדם רשם בטופס: PHP קוד:
|
קוד:
<?php |
תודה רבה, אבל יש בעיה אחת. אם בתוך הפונקציה עשו תנאי או לולאה, הסוגריים המסולסלים של הנ"ל שוברים את כל העסק.
יש לזה אולי פתרון? |
אתה בעצם רוצה לכתוב PARSER לPHP... מציע לך למצוא פתרון יותר מוצלח.
אם אתה מתעקש, אתה יכול לשכתב ל PHP את הקוד C שבPARSER של PHP. עריכה: הייתי סקפטי מידי חחח נראה שמישהו עשה משהו כזה: https://github.com/nikic/PHP-Parser |
למה? מה הבעיה לפרק את הפונקציות לגורמים? זה לא משהו שהוא תמידי אלא בניייה של פונקציות בסשן הנוכחי
|
כי אתה מבצע פרסינג לקוד.
פרסינג זה לא להשתעשע עם ביטויים רגולארים, זה לתמוך בכל המאפיינים של הסינטקס של השפה ושל המבנה שלה. אם לא תממש את הפרסר ב100%, אתה תמיד תגיע למצבי קצה שבהם הקוד שלך לא ידע לטפל. בטח ובטח to יהיו שגיאות סינטקס של המשתמש. זה תלוי כמה אתה באמת רוצה להשקיע בזה אתה יכול לחפש קוד מוכן(כמו זה שקישרתי אליו) ולקוות שהמימוש יהיה טוב |
מה שהבאת הוא גדול מדי ומסועף מדי. אני צריך בסך הכול צריך לקחת את כל הפונקציות שהוגדרו בtextarea ולהפעיל אותם בכל פעם שדפים אחרים באתר נטענים. זה עוזר לדיבוג של דברים. הביטוי הרגולרי שסופק עשה את כל העבודה פרט לזה שהוא נכשל ברגע ששמתי איזה תנאי בתוך אחת הפונקציות.
|
כן זה אפשרי, אבל זה יתמוך רק בפונקצייה אחת,
פשוט לשנות את הקוד ל: קוד:
<?php |
ציטוט:
|
ציטוט:
אחר כך אני רץ על המשתנה ובונה אותם מחדש עם eval |
כל הזמנים הם GMT +2. הזמן כעת הוא 07:51. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ