1 / 6

קורס PHP

קורס PHP. preg_replace_callback. preg_replace. preg_match. regex. ביטויים רגולריים משמשים אותנו על-מנת לבצע מניפולציות שונות על סטרינגים ולבצע עליהם ניתוחים שונים. קיימים מספר סוגי Syntax שונים, כאשר אנו נעבוד עם PCRE (= Perl Compatible Regular Expressions ). לתווים שונים משמעות שונה:

prema
Download Presentation

קורס PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. קורס PHP preg_replace_callback preg_replace preg_match regex ביטויים רגולריים משמשים אותנו על-מנת לבצע מניפולציות שונות על סטרינגים ולבצע עליהם ניתוחים שונים. קיימים מספר סוגי Syntax שונים, כאשר אנו נעבוד עם PCRE (=Perl Compatible Regular Expressions). לתווים שונים משמעות שונה: ^ - תחילת מחרוזת$ - סוף מחרוזת. – כל תו פרט ל-\n כאשר נרצה להשתמש למשל בתו שמור דוגמת ה-^ בכל זאת, נצטרך "להבריח" אותו באמצעות תו הבריחה "\". ניתן להשתמש בו על-מנת להבריח ביטויים שונים: \d – ספרה\w – אות\r – חזרה לשורה חדשה\n – ירידת שורה\t – טאב\s - רווח שימו לב! ירידת שורה במערכות יוניקס היא “\n”, במקינטוש היא “\r” ובחלונות “\r\n”. \D – כל תו שאינו סיפרה\W – כל תו שאינו אות\S – כל תו שאינו רווח

  2. קורס PHP preg_replace_callback preg_replace preg_match regex כאשר נרצה שתו מסויים יחזור מספר פעמים נוכל להשתמש ב{}, כאשר הם מקבלים {min,max}.לדוגמה הביטוי הבא: /\.{1,3}/ יחזיר TRUE על “.” או “..” או “…”. ניתן גם רק להזין ערך אחד על-מנת שיוחזר TRUE רק על מספר פעמים שאותו ביטוי חוזר. כאשר אנו מדברים במונחים של אינסוף ולא יודעים כמה תו למשל חוזר אם בכלל נוכל להשתמש בביטויים הבאים: * - לא בכלל או אינסוף, כמו {0,}+ - פעם אחת ומעלה, כמו {1,}? – בכלל לא או פעם אחת, כמו {0,1} אם נרצה להשתמש בזה על ביטוי מסויים המורכב ממספר תווים נוכל ליצור תת-תבנית באמצעות השימוש בסוגריים רגילים. למשל /(cat){1,2}/ יחזיר TRUE על “cat” ועל “catcat”. ניתן גם להשתמש ב-"|" לצורך OR. לדוגמה: /(car|dog)/ יחזור TRUE על "cat" ועל “dog” אם נרצה תו מסויים מתוך מחלקה ספציפית שיכיל למשל רק סיפרה בין 1 ל-5 או אות בעברית נשתמש בסוגריים מרובעים: [א-ת1-5]. שימו לב שאם תשתמשו בתו “^” בתוך מחלקת תווים הוא יקבל משמעות NOT.

  3. קורס PHP preg_replace_callback preg_replace preg_match regex int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] ) ועכשיו קצת תכל'ס... if (preg_match(“/^[א-ת\s]+$/”,”בלה בלה")) echo“הסטרינג שהוזן מכיל רק אותיות עבריות ורווחים”; אם נזין פרמטר שלישי נקבל לתוך המערך שנבחר בתא 0 את כל הביטוי שנקלט ולאחריו נתחיל בקבלת כל הביטויים שקלטנו במחלקות לפי סדר הופעתן בביטוי. preg_match(“/(\d+)(\w)/”,”255x”,$matches)echo$matches[0];//prints “255x”echo$matches[1];//prints “255”

  4. קורס PHP preg_replace_callback preg_replace preg_match regex int preg_match_all ( string pattern, string subject, array &matches [, int flags [, int offset]] ) הפונקציה המתקדמת יותר לpreg_match()היא preg_match_all() המאפשרת לנו לקלוט מספר דפוסים אותם היא תשים במטריצה. preg_match_all(“/([א-ת]+)/”,”מייקרוסופט חרא”,$matches)echo$matches[0];//prints “מייקרוסופט”echo$matches[1];//prints “חרא”

  5. קורס PHP preg_replace_callback preg_replace preg_match regex mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] ) כאשר אנו רוצים להחליף דפוס מסויים באחר נוכל להשתמש בפונקציה preg_replace(). $str = preg_replace(“/([א-ת]+)/”,"<b>\\1</b>”,”מייקרוסופט חרא”)echo$str;//prints “<b>מייקרוסופט</b> <b>חרא</b>” כל הביטוי נקלט ל\\0, הדבר הראשון שנקלט \\1, השני ל\\2 וכך הלאה...

  6. קורס PHP preg_replace_callback preg_replace preg_match regex mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit [, int &count]] ) אם אנו לא מעוניינים רק להחליף ביטוי בביטוי אחר, אלא קודם לבצע עליו מספר דברים ו/או לבדוק אותו תוכלו להשתמש בcallback הקיים בפונקציה preg_replace_callback()כדי להעביר את מה שהתקבל אליה. function callback($matches){if ($matches[1][0]!=“/”)return $matches[1].” style=\”color: green\” “;elsereturn $matches[1];} $str = preg_replace_callback(“/<(.+?)>/”,"callback”,”<span>coool</span>”)echo$str;//prints “<span style=“color: green”>coool</span>”

More Related