php / ניווט באתר בעזרת PHP / דרך ה-PHP
דרך ה-PHP
בסדר, בסדר, מספיק למתוח אתכם, הנה הדרך לעשות את אותו הדבר בדיוק ע"י
שימוש ב-PHP. תקראו את כל הקוד שמופיע כאן , תחזרו אלי ואני אפרק אותו
לגורמים עבורכם. אם חסר לכם מידע, אני אפנה אתכם בחיוך גדול למדריך
למשתמש של PHP עצמה.
This '<?' is how you indicate the start of a block of PHP code, -->
<?php
# and this '#' makes this a PHP comment.
$full_path = getenv("REQUEST_URI");
$root = dirname($full_path);
$page_file = basename($full_path);
פונקצית ה-PHP getenv מקבלת את הערך של משתני הסביבה ואילו REQUEST_URI
היא הדרך של אפאצ'י לקבל את הכתובת שמופיעה לאחר שם השרת. לדוגמה,
בכתובת http://www.yourmom.com/dinner/tuna_1.html הערך שיתקבל הוא
dinner/tuna_1.html./
השלב הבא הוא לשייך את הכתובת הזו למשתנה full_path$, אני משתמש
ב dirname כדי לקבל את שם התיקייה הרלוונטית וב basename כדי לקבל את
שם הקובץ. Dirname יחזיר לי /dinner ואילו basename יחזיר tuna_1.html
החלק הבא קצת יותר מסובך. כל שמות הקבצים שלנו נוצרו בתבנית של
story_X.html, כאשר X שווה למספר העמוד. אנחנו רוצים לשלוח את מספר הקובץ
מתוך השם שלו. אנחנו יכולים להיות ראש קטן ולהניח ששם הקובץ יהיה משהו
פשוט כמו tuna_2.html, אבל זה לא אחראי. אין שום ערבות שמספר הקובץ יכיל
ספרה אחת בלבד, הוא בהחלט יכול להיות משהו כמו tuna_234.html,גם אסור
לנו להניח שיהיה בשם רק קו תחתון אחד, השם candy_apple_3.html הינו נפוץ
באותה מידה.
לסיכום, אנחנו רוצים את כל מה שנמצא אחרי הקו התחתון האחרון
ולפני סיום השם ב html- נשתמש בקוד הבא:
$page_num = substr($page_file
, strrpos($page_file, "_") + 1
, strpos($page_file, ".html") - (strrpos($page_file, "_") + 1)
);
הפונקציה substr ($string, $start , [$length] ) מאפשרת לשלוף את המחרוזת
string$ החל מנקודת ההתחלה start$ ועד למספר של length$ תווים עד לסיום
המחרוזת. (זו משמעות הסוגריים המרובעים, אתה יכול להשאיר את המשתנה
length$ כמו שהוא ופשוט לקבל את כל מה שמופיע אחרי נקודת ההתחלה).
כמו שכל מתכנת C יודע, הסימן הראשון במחרוזת נמצא במיקום 0, לא 1.
הפונקציה strrpos ($string, $what) מחזירה את המיקום של הסימן האחרון
(הימני) במחרוזת what$ ומאכסנת אותו במשתנה string$. אנחנו משתמשים
בפונקציה הזו כדי לגלות מתי הופיע הקו התחתון האחרון במחרוזת. ואז הפונקציה
strops ($string, $what ) מחזירה את המיקום של ההופעה הראשונה של what$
ב-string$. הפונקציה הזו תמצא לנו את המיקום שבו ה html מתחיל.
בסופו של דבר, אנו משלבים את כל הפונקציות האלו כדי לקבל את שם הקובץ החל
מהמיקום של הקו התחתון האחרון + 1 (כדי לא לקבל את הקו התחתון עצמו).
הערך שיתקבל יראה את כל מה שנמצא בין הקו התחתון וה-html.
עמוד הבא: כולם ביחד >>
|