|
![]() |
# 1 |
חבר בקהילה
|
עזרה עם regex
שלום לכולם,
אני תקוע במשהו עם ביטויים רגולרים ואני די בטוח שיש פה אנשים שיוכלו לעזור לי. בכל מקרה, יש לי textarea ואני רוצה שיהיה אפשר להכריז דרכו על פונקציות. הקטע הוא שאני צריך לפרסס את זה כדי שאני אוכל לבנות את זה מאוחר יותר. ז"א אם בן אדם רשם בטופס: PHP קוד:
|
![]() |
![]() |
# 2 |
חבר וותיק
|
קוד:
<?php $text = 'function foo ($bar) { echo $bar; explode($arr, ""); }'; preg_match("/function.+?([a-zA-Z0-9_]+?)[\s]*\((.*?)\)[\s]*\{(.+?)\}/is", $text, $match); $match = array_map("trim", $match); $name = $match[1]; $args = $match[2]; $func = $match[3]; echo "Name: $name<br />Args: $args<br />Func: $func"; ?> |
![]() |
![]() |
# 3 |
חבר בקהילה
|
תודה רבה, אבל יש בעיה אחת. אם בתוך הפונקציה עשו תנאי או לולאה, הסוגריים המסולסלים של הנ"ל שוברים את כל העסק.
יש לזה אולי פתרון? |
![]() |
![]() |
# 4 |
משתמש - היכל התהילה
|
אתה בעצם רוצה לכתוב PARSER לPHP... מציע לך למצוא פתרון יותר מוצלח.
אם אתה מתעקש, אתה יכול לשכתב ל PHP את הקוד C שבPARSER של PHP. עריכה: הייתי סקפטי מידי חחח נראה שמישהו עשה משהו כזה: https://github.com/nikic/PHP-Parser
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 5 |
חבר בקהילה
|
למה? מה הבעיה לפרק את הפונקציות לגורמים? זה לא משהו שהוא תמידי אלא בניייה של פונקציות בסשן הנוכחי
|
![]() |
![]() |
# 6 |
משתמש - היכל התהילה
|
כי אתה מבצע פרסינג לקוד.
פרסינג זה לא להשתעשע עם ביטויים רגולארים, זה לתמוך בכל המאפיינים של הסינטקס של השפה ושל המבנה שלה. אם לא תממש את הפרסר ב100%, אתה תמיד תגיע למצבי קצה שבהם הקוד שלך לא ידע לטפל. בטח ובטח to יהיו שגיאות סינטקס של המשתמש. זה תלוי כמה אתה באמת רוצה להשקיע בזה אתה יכול לחפש קוד מוכן(כמו זה שקישרתי אליו) ולקוות שהמימוש יהיה טוב
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 7 |
חבר בקהילה
|
מה שהבאת הוא גדול מדי ומסועף מדי. אני צריך בסך הכול צריך לקחת את כל הפונקציות שהוגדרו בtextarea ולהפעיל אותם בכל פעם שדפים אחרים באתר נטענים. זה עוזר לדיבוג של דברים. הביטוי הרגולרי שסופק עשה את כל העבודה פרט לזה שהוא נכשל ברגע ששמתי איזה תנאי בתוך אחת הפונקציות.
|
![]() |
![]() |
# 8 | |
Whatever
|
ציטוט:
__________________
תומר |
|
![]() |
![]() |
# 10 |
חבר וותיק
|
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|