הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [JS / PHP] יש לי בעיה, לא טכנית הסרת תגי HTML מתוך משתנה מסויים (https://hosts.co.il/forums/showthread.php?t=21165)

Alon.R 04-05-06 13:09

[JS / PHP] יש לי בעיה, לא טכנית הסרת תגי HTML מתוך משתנה מסויים
 
שלום לכולם,
לא מזמן תיכנתתי מערכת לניהול תוכן, אני רוצה להוסיף לה תקציר לכתבה שיופיע בעמוד מסויים.
עכשיו יש לי בעיה, כי המנהל מכניס דרך הפאנל ניהול כתבה דרך עורך טקסט, עכשיו הטקסט נכנס ביחד עם תגי HTML (מהעורך טקסט שבפאנל ניהול, חינמי.. לא שלי) לתוך המסד נתונים.

עכשיו הכנסתי את הטקסט לתוך משתנה (נגיד, $text) ועשיתי את התקציר ככה:

PHP קוד:

if(strlen($text) > "50")
{
  
$text2 substr($text047). "...";


הבעיה היא שהוא מחשיב את התגי HTML מתוך העמודה של הטקסט במסד כתווים וגם מקצר את הטקסט ביחד עם תגי הHTML.

וזה לא רק יעיל, זה גם גורם לבאלגן.

השאלה שלי היא איך מוציאים מתוך משתנה מסויים ($text) את הטקסט לתוך משתנה אחר / איך מתעלמים מתגי הHTML במשתנה.

תודה לעוזרים.

DavidBD 04-05-06 13:17

אתה מגביל את המנהל בתגים מסויימים יענו אתה יודע באיזה תגים הוא עלול להשתמש?
אם כן, תעשה str_replaceים במשתנה חדש שמונה את התווים, ותחליף כל תג ל''

זה לפי ההגיון :)

Alon.R 04-05-06 13:27

David2255

no can do.
מכיוון שהעורך טקסט שממנו המנהל מוסיף טקסט, הוא עורך חינמי, יש בו המון אפשרויות - משמע המון תגי HTML חייב להיות פיתרון כלשהו שמוחק כל מה שנמצא בין < > ואת ה< >.

BlueNosE 04-05-06 14:19

תשתמש בREG EXP כדי לעשות את זה..
לא נשמע כ"כ מסובך.

Alon.R 04-05-06 15:02

עומר, תפרט בבקשה.
אמרת REG EXP, אני יודע שזה אופרטור (ככה כותבים? :S) של where בשאילתה של mysql.
השאלה היא איך זה בא לקראת פיתרון הבעיה?

meshuga 04-05-06 15:03

חבר'ה, מה הדיון פה?:p
strip_tags

REG EXP
זה ביטויים רגולרים...זה מצוי היום בכל שפה כמעט.

BlueNosE 04-05-06 16:15

אני חושב שהוא התכוון שאם נניח בקידוד יש
<b>שלום</b>
וזה נמצא בתווים האחרונים של הSUBSTR,
זה עושה
<b>שלום</
ואז זה יוצר בעיה.
אותה בעיה נעשית גם עם &nbsp; לדוגמא.

הדרך לפתור-
http://www.php.net/preg-replace
תסתכל פה,
ותלמד מאיתן (http://php.eitan.ac.i) איך להשתמש.
אתה פשוט כותב, שאם יש לתג פתיחה אבל אין סגירה מיד אחריו- זה ימחק לגמרי.

Alon.R 04-05-06 16:36

meshuga

וואלה לא האמנתי שלא יהיה כזאת פונקציה בPHP, עכשיו תגיד זה גם לא יציג &nbsp; וכו'?

עריכה:

אני רואה שזה כן מציג &
quot;
עכשיו מה אני עושה?

BlueNosE 04-05-06 17:05

תראה, יותר פשוט להשתמש בדברים אחרים:
htmlspecialchars, htmletinties ודומים, או פשוט לעשות str_replace רק למה שאתה צריך (לדוגמא, ל< ול>, ולא להכל).

meshuga 04-05-06 19:42

ציטוט:

נכתב במקור על ידי Alon.R
meshuga

וואלה לא האמנתי שלא יהיה כזאת פונקציה בPHP, עכשיו תגיד זה גם לא יציג &nbsp; וכו'?

עריכה:

אני רואה שזה כן מציג &
quot;
עכשיו מה אני עושה?

אני לא השתמשתי בפונקציה...רק ראיתי את הדוגמא שלה וזכרתי שהיא קיימת.....
ולפי הדוגמה זה פשוט מסיר...


כל הזמנים הם GMT +2. הזמן כעת הוא 21:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ