עבור לתוכן

PHP - לקחת חלק ממשתנה עד למילה מסוימת

Featured Replies

פורסם

שלום

אני רוצה לחתוך משתנה מסוים עד למילה מסוימת

לצורך ההמחשה המשתנה הוא $post והוא מכיל


line1
line2
line3
<!over>
line4
line5

עכשיו אני לחתוך את המשתנה ברגע שמגיעה המילה "<!over>" (לא כולל)

* חשוב לציין שאין קשר למספר השורות (לפעמים זה יופיע אחרי שתי שורות ולפעמים אחרי 5 שורות)

ניסיתי לעשות עם explode ועם strpos

ללא הצלחה ..

תודה מראש לעוזרים

פורסם

כשאתה אומר שניסית ולא הלך, מה הקוד שניסית ומה היתה התוצאה?

נסה למשל את זה:

$result = stristr($post, '<!over>', true)

פורסם
  • מחבר

 Warning: Wrong parameter count for stristr() in /home/kirma/domains/kirma.co.il/public_html/time.php on line 13

פורסם

 Warning: Wrong parameter count for stristr() in /home/kirma/domains/kirma.co.il/public_html/time.php on line 13

ככול הניראה הגרסא של ה-PHP שבה אתה משתמש לא תומכת בפרמטר השלישי. אתה צריך להישאר עם strpos אבל לשלב את זה עם substr.

הקוד אמור להיראות פחות או יותר ככה:


$find = '<!over>';
$offset = strpos($input, $find);
$output = substr($input, $offset + strlen($find));

כך שהמשתנה $input מתאר את כול הטקסט, $find מתאר את המילה שאתה רוצה לחפש. $output נותן לך את התוצאה של המחרוזת המקורית מבלי כול החלק העליון מהמילה שאתה מחפש (וגם מבלי המילה עצמה).

פורסם
  • מחבר

כניראה שלא הסברתי את עצמי כמו שצריך

line1
line2
line3
<!over>
line4
line5

יחזיר

line1
line2
line3

הקוד שאתה הבאת לי מחזיר את הטקסט אחרי המילה "<!over>" ואני רוצה שהוא יחזיר את הטקסט לפני המילה ..

עריכה:

שיניתי את זה לככה

$output = substr($post, 0 , $offset);

ועכשיו זה מחזיר לי כמו שרציתי :)

עריכה #2:

אגב, זה לא יעשה לי בעיות במידה והמשתנה לי מכיל המון המון טסקט ?

פורסם

echo substr($input, 0, strpos($input, '<!over>'));

פורסם
  • מחבר

כן.. זה בדיוק מה שעשיתי

שאלה:

זה לא יעשה לי בעיות במידה והמשתנה לי מכיל המון המון טסקט ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים