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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה, הוצאת 10 תווים ראשונים ממקום מסויים במחרוזת (https://hosts.co.il/forums/showthread.php?t=41656)

al_n 16-03-07 13:39

עזרה, הוצאת 10 תווים ראשונים ממקום מסויים במחרוזת
 
PHP קוד:

$a "The torunament will start on sunday 28.1.2007. the games will be layed vGames servers with Busted anti cheat.";
$b "vGames"

עכשיו אני רוצה להציג נגיד 10 תווים לפני איפה שמופיע הערך של $b ו10 תווים אחרי.
משהו כזה:
be layed vGames servers w
איך אני עושה את זה?

מקווה שהבנתם

meshuga 16-03-07 13:53

תשתמש בstrpos וsubstr.

al_n 22-03-07 20:22

לא כ"כ הולך לי, תראה:
PHP קוד:

$txt "נגיד שפה יש מלאא טקסט";

$pos strpos($txt"אלמוג");
// ^ נגיד שזה נתן לי 150 ^

$min $pos 10;
// 150-10 = 140
$max $pos 10;
// 150+10 = 160

echo $newPos substr($txt$min$max); 

זה לא אמור להציג לי את הטקסט מהתו ה 140 עד לתו ה 160?
כי זה מציג לי משהו אחר לא כולל "אלמוג"

Eran-s 22-03-07 20:27

ציטוט:

נכתב במקור על ידי al_n (פרסם 443324)
לא כ"כ הולך לי, תראה:
PHP קוד:

$txt "נגיד שפה יש מלאא טקסט";

$pos strpos($txt"אלמוג");
// ^ נגיד שזה נתן לי 150 ^

$min $pos 10;
// 150-10 = 140
$max $pos 10;
// 150+10 = 160

echo $newPos substr($txt$min$max); 

זה לא אמור להציג לי את הטקסט מהתו ה 140 עד לתו ה 160?
כי זה מציג לי מלאאא כאילו חיבור שלהם או משהו כזה

יותר נכון יציג מהתו ה-141 עד 161.
התו הראשון במחרוזת נמצא במיקום 0 בדומה למערכים.
ותמחק את ה-$newPos =

אגב אם אתה עושה strpos והערך לא נמצא הוא מחזיר FALSE ( שזה בעצם 0 ולכן נוצרת בעיה כי התו הראשון הוא 0 ובשימוש של הפונקציה בהשוואה משתמשים ב-=== ולא ב-== )

al_n 22-03-07 20:39

הצלחתי!!!!
הבעיה הייתה ש $min הגיע למינוס!
תודה רבה רבה לmeshuga, עזרת לי מאוד עם הפונקציות
ותודה לזה שמעלי על הכיוון


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

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