רן בר-זיק לפני 14 שנים כ- 3 דקות קריאה
סגירת תגים של HTML במחרוזת טקסט ב-PHP | אינטרנט ישראל
אני משער שכל מי שפיתח מודולים לסוגים שונים של אתרי תוכן היה צריך לקבל תוכן שנכתב על ידי מערכת ה-WYSIWYG ולהציף אותו למקום אחר. הבעיה היא שלפעמים אתה נדרש לחתוך את התוכן הזה עם substr או שהוובמסטר שהזין את התוכן הזין אותו בלי להקפיד על סגירה נכונה של תגיות.
תגיות HTML פתוחות בתוך סטרינג או תגיות סוגרות בלי תגיות פתוחות יכולות לעשות ברדק רציני בעיצוב. אחד הפתרונות האהובים עלי הוא פונקציה קטנה ופשוטה שמבצעת בדיקה של מחרוזת הטקסט ומבצעת סגירה של כל התגיות הפתוחות.
חשוב להדגיש שמבחינת ביצועים, עדיף לא להשתמש בפתרון הזה על מחרוזות טקסט גדולות מאד, עבור פילטור של טקסטים רבים עדיף להשתמש ב-tidyHTML או בפתרונות אחרים.
הנה הפונקציה
function closetags ($html){
//put all opened tags into an array
preg_match_all ( "#< ([a-z]+)( .*)?(?!/)>#iU", $html, $result );
$openedtags = $result[1];
//put all closed tags into an array
preg_match_all ( "##iU", $html, $result );
$closedtags = $result[1];
$len_opened = count($openedtags);
//all tags are closed
if(count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse ( $openedtags );
// close tags
for($i = 0; $i < $len_opened; $i++ ) {
if ( in_array ($openedtags[$i], $closedtags )) {
$html .= "";
}
else {
unset ($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
השימוש כמובן הוא פשוט ביותר, רק להעביר את המחרוזת ולקבל אותה חזרה עם כל התגיות סגורות.
ללמוד תכנות בעברית
ללמוד תכנות מעשי מאפס, בעברית ובקלות עם הספר שלי ״ללמוד ג׳אווהסקריפט בעברית״
רן בר-זיק
ארכיטקט תוכנה בכיר בסייברארק, עיתונאי טכנולוגיה בעיתון דה מרקר, מרצה בקריה האקדמית אונו ואוניברסיטת חיפה, אב לארבעה ילדים.
השארת תגובה
פוסטים מומלצים
פוסטים נוספים שכדאי לקרוא
פתרונות ומאמרים על פיתוח אינטרנט
SSG עם next
אחרי שלמדנו במאמר הקודם מה זה SSR והבנו שלא מדובר בקליע כסף שפותר את כל הבעיות שלנו, נלמד על SSG שיכול להקל על כמה מהבעיות של SSR.
ספטמבר 17, 2023 2 תגובות
יסודות בתכנות
openAPI
שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API
ינואר 14, 2024 4 תגובות