פורסם 2010 במרץ 1615 שנים היי,יש לי מחרוזת גדולה (בעצם זה טקסט של מאמר עם תגים של HTML).אני רוצה לפרק את המחרוזת למערך (array) בכל פעם שמופיע <h3> , אך כל הפונקציות של הפירוק שניסיתי לא כוללות בתוכן את ה-<h3> עצמו, שזה כמובן חלק חשוב.בסוף התוצאה צריכה להיות מערך כזה:item 1 - <h3>11111</h3>item 2 - <h3>2222</h3>item 3- <h3>333</h3>תודה מראש על העזרה!!
פורסם 2010 במרץ 1615 שנים אז אם אתה יודע שבכל פירוק כזה צריך להיות <h3> אז קח את הפונקציה שכבר מצאת ותעשה בה פשוט שתשמור כל סטרינג עם <h3> בהתחלה ועם </h3> בסוף.
פורסם 2010 במרץ 1615 שנים אז אם אתה יודע שבכל פירוק כזה צריך להיות <h3> אז קח את הפונקציה שכבר מצאת ותעשה בה פשוט שתשמור כל סטרינג עם <h3> בהתחלה ועם </h3> בסוף. זאת אכן אפשרות סבירה, אך היא פחות אלגנטית - לדעתי צריך כאן פיתרון שבתהליך הפירוק של המחרוזת למערך בכל פעם שהוא מאתר <h3>, הוא גם יכלול בתוכו את האוביקט. אם למשל זה לא היה <h3> אלא משהו דינמי יותר?
פורסם 2010 במרץ 1715 שנים אפשר לעשות את זה בקלות דרך strpos וsubstr (וזה גם דינמי!):<?phpfunction getTag($str, $tag = 'h3'){ $openTag = '<' . $tag . '>'; $closeTag = '</' . $tag . '>'; $closeTagLen = strlen($closeTag); $tags = array(); // The array to contain the entrys while (($start = stripos($str, $openTag)) !== false) { $len = stripos($str, $closeTag); /* This can be potentially unsafe , as stipos() can return FALSE if no closing tag is found */ $len -= $start; // We get the actual length by reducing the starting position of the tag $len += $closeTagLen; // We add the len of the closing tag so that substr() will include it $tags[] = substr($str, $start, $len); } return $tags;}?>
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.