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.



עמוד הבא: כולם ביחד >>




הקדמה
האלטרנטיבה
דרך ה -PHP >
כולם ביחד
עוד דוגמא
ההכנות
סודות נחשפים
על מה אני
מסתכל?
קח הכל הביתה