PHP

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
PHP
PHP
הופיעה ב 1995
תוכננה על ידי רזמוס לרדורף
פותחה על ידי The PHP Group
גרסה אחרונה 5.3.8 (23 באוגוסט 2011)
מימושים Zend Engine, Roadsend PHP, Phalanger, Quercus, Project Zero, HipHop
הושפעה על ידי C, Perl, Java, C++, TCL
השפיעה על Php4delphi
אתר www.php.net
סיומת ‎.php, .phtml, .php5, .phps

PHP (ראשי תיבות רקורסיביים של "PHP Hypertext Preprocessor") היא שפת תסריט המיועדת בעיקר לתכנות יישומי אינטרנט בצד השרת, אך יכולה לרוץ על המחשב האישי באמצעות מפרש. התחביר של השפה דומה לזו של C והסמנטיקה דומה לזו של Perl.

תוכן עניינים

[עריכה] איפיוני השפה

לשפת PHP יש מפרש (Interpreter) בשם זה המותקן בשרת ותפקידו להריץ תסריטים (Scripts) ב-PHP, תוך שימוש במשאבים של מחשב השרת (למשל: מערכת הקבצים ובסיסי נתונים). בדומה לטכנולוגיות צד-שרת נוספות, באמצעות PHP ניתן ליצור דפי Web דינמיים בשילוב נתונים מבסיסי נתונים, וכך לטפל בטפסים ובמידע שנשלחים מהמשתמשים (clients). התפקיד של PHP הוא לנתח את המידע וליצור פלט בהתאם.

יודגש שכשפה לתכנות יישומי אינטרנט בצד השרת, PHP אינה עוסקת במשימות שמתבצעות בצד הלקוח, כלומר בדפדפן. בהתאם לכך, PHP יוצרת תוכן, דף HTML,‏ XML, תמונה או כל אובייקט אחר, ושולחת אותם אל הדפדפן, אך היא אינה מפענחת אותם – זו מלאכתו של הדפדפן. באופן דומה, שפת PHP משלבת בדפים, במידת הצורך, תסריטי JavaScript או VBScript ורכיבי Flash, לביצוע במחשב הלקוח (קוד PHP אינו מגיע אל מחשב הלקוח, אלא רק הפלט שיצר קוד זה).

PHP היא אחת השפות הראשונות שנבנו במיוחד לתכנות אתרים דינמיים באינטרנט. בין הכלים המקבילים לה ניתן למנות את Ruby on Rails ו-JSP (של Sun, מפתחת Java) וכן את ASP (של Microsoft). ל-PHP מספר יתרונות:

  • השפה קלה להבנה וללמידה. במבנה השפה ניכרת השפעת שפת C, ובמידה מסוימת, גם Java. היכרות מוקדמת עם שפות אלו ללא ספק מסייעת לתהליך האקלום.
  • בשימוש ותכנות נכון, שפת PHP מספקת אבטחה גבוהה.
  • ניתן להריץ את מנוע PHP על מגוון רחב של מערכות הפעלה ושרתים, כך ש-PHP אינה מוגבלת לשרתים או למערכות הפעלה מסוימות.
  • שפת PHP מותאמת בעיקר לעבודה עם אתרים ברשת. למעשה, ניתן לבנות אתר שלם עם קובץ PHP אחד, בדיוק כמו אתר ויקיפדיה, שנבנה באמצעות PHP.
  • שפת PHP היא שפת "קוד פתוח" (open source), ולכן כמעט כל אחד יכול לפתח את השפה, והיא מופצת בחינם.

לשפת PHP מגוון גדול של פונקציות ספרייה המכסות תחומים רבים והמקלות על המפתחים. פונקציות ייעודיות לתמיכה בבסיסי נתונים שונים, פונקציות לפרישת ודחיסת קבצים, להצפנה מידע, לטיפול באזורי זמן על פי הארצות השונות ברחבי העולם, קביעת זמני זריחת השמש ושקיעתה לפי האזור הגאוגרפי על כדור הארץ, ואף פונקציות להמרה תאריכית בין תאריכונים שונים, כולל מהתאריך העברי ואליו.

[עריכה] תולדות השפה

רזמוס לרדורף (Rasmus Lerdorf) חיפש דרך קלה להכניס נתוני קורות חיים דרך האינטרנט באמצעות מפענח שפה שירוץ בצד השרת. בשנת 1994/5 הוא יצר את מפענח השפה PHP/FI (כלומר Personal Home Page tools / Forms Interpreter) שנועד בעיקר לטיפול בטפסים. לרדורף פיתח גם את הגרסה השנייה, PHP/FI 2.

השפה שלרדורף בנה הייתה קצת מסורבלת ושונה מהשפה המוכרת כיום. זאב סורסקי ואנדי גוטמנס, שני מפתחים ישראליים מהטכניון, פיתחו מהיסוד את שפת PHP המוכרת לנו כיום, והעניקו ל-PHP את הפירוש הרקורסיבי: PHP Hypertext Preprocessor. לאחר שלרדורף הסכים להפסיק את הפיתוח של PHP/FI, החליטו סורסקי וגוטמנס להוציא את השפה שפיתחו כגרסה השלישית, PHP3, כהמשך לגרסה השנייה של לרדורף ובכדי להבהיר ש-PHP3 מחליפה את PHP/FI 2. שפת PHP3 הייתה הגרסה הראשונה שהייתה מלאה, מונחית עצמים, איפשרה הרחבה לתמיכה בבסיסי נתונים ובפרוטוקולים שונים, והיא השפה המוכרת לנו. סורסקי וגוטמנס ממשיכים בפיתוח השפה בעזרת חברת Zend Technologies שהקימו יחדיו, והוציאו את PHP4, כיום משוחררת גרסה PHP5. במקביל לפתרון בעיות בגרסה הנוכחית, התחילה העבודה על גרסה מתקדמת יותר שכנראה תקרא PHP 5X, הודעה רשמית על גרסה זאת עוד לא הוכרזה.

[עריכה] קודים לדוגמה

זאת דוגמה לתוכנית !Hello World טיפוסית. (ראו Basic syntax במדריך ה- PHP הרשמי):

<?php
  echo "Hello World!";
?>

הקוד שלהלן ידגים כיצד ניתן להדפיס את כתובת הIP של המחשב שצפה בקוד זה.

<?php
  echo $_SERVER["REMOTE_ADDR"];
?>

שפת PHP תומכת בקבלת משתנים מהכתובת (טפסים בשיטת GET) הקוד הבא מדגים שימוש באפשרות זאת.

<?php
echo "Your name is: {$_GET['name']}";
?>

אם מידע מהטופס העבר באמצעות HTTP POST, ניתן היה להחליף את המילה GET שלעיל במילה POST.

במידה ונכנס לכתובת http://localhost/file.php?name=Bob (כאשר localhost/file.php מייצג את מיקום ושם הקובץ) נקבל את הפלט:

Your name is: Bob

הקוד הבא מדגים התחברות למסד נתונים מסוג MySQL וביצוע שאילתא.

<?php
mysql_connect("HostName", "UserName", "Password") //connect to MySQL server
        or die(mysql_error()); //Debug connect
mysql_select_db("DataBaseName") //select DataBase
        or die(mysql_error()); //Debug select DataBase
$result = mysql_query("SELECT * FROM `students` WHERE `Fname` = 'David' and `Lname` = 'Robinson' LIMIT 1;") //run sql query
        or die(mysql_error()); //Debug sql query
$row = mysql_fetch_assoc($result); //sql result from query into array (assoc)
echo "Personal Information\n"; //print
echo "First Name: {$row['Fname']}\n"; //print
echo "Last Name: {$row['Lname']}\n"; //print
echo "Grade: {$row['grade']}\n"; //print
echo "Age: {$row['age']}\n"; //print
?>

וכאשר נכנס לדף, הפלט שיתקבל הוא:

Personal Information
First Name: David
Last Name: Robinson
Grade: 7th
Age: 13

השפה PHP תומכת בתכנות מונחה עצמים, הקוד הבא מראה יצירת מחלקה

ֿ
<?php
class Car
{
        /**
         * The car color
         * @var String
         */
        private $color;
 
        /**
         * Initialize a new car
         * @param String $color - the car color
         */
        public function __construct($color)
        {
                $this->color = $color;
        }
 
        /**
         * Get the car color
         * @return String
         */
        public function getCarColor() {
                return $this->color;
        }
 
        /**
         * Set the car color
         * @param String $color - the car new color
         * @return Void
         */
        public function setCarColor($color) {
                $this->color = $color;
        }
}
 
$myRedCar = new Car("Red");
$myBlueCar = new Car("Blue");
print( "I have two cars, one of them is " . $myRedCar->getCarColor() . " And the other is " . $myBlueCar->getCarColor() );
$myBlueCar->setCarColor("Yellow");
print( "<br />Tomorow, I will replace my blue car color to " .  $myBlueCar->getCarColor() );
?>

[עריכה] ראו גם

[עריכה] קישורים חיצוניים

מיזמי קרן ויקימדיה
ויקיספר ספר לימוד בוויקיספר: PHP
ויקישיתוף תמונות ומדיה בוויקישיתוף: PHP

כלים אישיים
גרסאות שפה
מרחבי שם
פעולות
ניווט
קהילה
תיבת כלים
דף זה בשפות אחרות
הדפסה/יצוא