לדלג לתוכן

מבוא ל-PHP: ההרצאה המלאה למתחילים

הקדמה

שפת PHP היא אחת משפות התכנות הפופולריות ביותר לפיתוח אתרי אינטרנט ודפי אינטרנט דינמיים. היא פועלת בצד השרת (Server-Side) לעומת כל הצד לקוח שלמדנו עד כו. ומשמשת לניהול נתונים, אינטראקציה עם מסדי נתונים, יצירת תוכן דינמי, ועוד.


פרק 1: מה זה PHP?

שפת PHP (ראשי תיבות של "Hypertext Preprocessor") היא שפת תכנות שמופעלת בצד השרת. כאשר דפדפן מבקש דף PHP מהשרת, השרת מריץ את הקוד ומחזיר את התוצאה כקובץ HTML לדפדפן.

דוגמה ראשונה ב-PHP

<?php
    echo "שלום עולם!";
?>

שמירת קבצי PHP

  • קובצי PHP חייבים להסתיים בסיומת .php.

  • ניתן להריץ את הקבצים על בxampp בקלות, רק צריך להוסיף אותם לתקייה- בדיוק כמו שאר קבצי הhtml שיצרנו עד כו.
    ואז לגשת ל- http://localhost/index.php למשל.


פרק 2: שילוב PHP עם HTML

שפת PHP יכולה להשתלב בתוך קובצי HTML כדי לייצר דפים דינמיים.

<!DOCTYPE html>
<html>
<head>
    <title>דף PHP ראשון</title>
</head>
<body>
    <h1>ברוכים הבאים</h1>
    <p>התאריך היום הוא: <?php echo date("d/m/Y"); ?></p>
</body>
</html>

למעשה התגית php בתוך הhtml תרוץ בצד שרת, השרת יריץ את הphp ויצור html ויחזיר ללקוח.
כך שהפקודה "echo date("d/m/Y");" תרוץ בצד השרת, תחזיר תשובה ואז תחזור ללקוח.


פרק 3: משתנים, טיפוסים ואופרטורים

הצהרת משתנים

<?php
$name = "דני";
$age = 25;
$price = 19.99;
$is_admin = true;
?>

אופרטורים נפוצים

<?php
$x = 10;
$y = 5;

echo $x + $y; // חיבור
echo $x - $y; // חיסור
echo $x * $y; // כפל
echo $x / $y; // חילוק
?>

פרק 4: תנאים ולולאות

תנאים ב-PHP

<?php
$age = 18;
if ($age >= 18) {
    echo "מותר לך להיכנס";
} else {
    echo "אין לך גישה";
}
?>

לולאות

<?php
for ($i = 0; $i < 5; $i++) {
    echo "מספר: $i <br>";
}
?>
<?php
$count = 0;
while ($count < 5) {
    echo "ספירה: $count <br>";
    $count++;
}
?>

פרק 5: פונקציות

פונקציה פשוטה

<?php
function greet($name) {
    return "שלום, $name";
}
echo greet("דני");
?>

פרק 6: סופר-גלובל

קוד PHP מקבל "סופר-גלובלים" הם רשימה של פרמטרים שהוא יכול לגשת אליהם.
- $_GET מביא לי רשימה של כל הפרמטרים הקוד שלי מקבל בבקשת GET
- $_POST מביא לי רשימה של כל הפרמטרים הקוד שלי מקבל בבקשת POST
- $_SERVER מביא לי רשימה של הרבה מידע שיש בבקשה שאני מקבל
ונלמד בהמשך על עוד בקשות כאלו.

הריצו את הקוד הבא

<?php
var_dump($_GET);
var_dump($_POST);
var_dump($_SERVER);
>

שלחו בקשת GET לקובץ באמצעות curl:
curl http://localhost/index.php

שלחו בקשת POST לקובץ באמצעות curl:
curl http://localhost/index.php -d "param1=value1&param2=value2" -X POST


פרק 7: עבודה עם טפסים ב-PHP

<!DOCTYPE html>
<html>
<body>
    <form method="post" action="process.php">
        שם: <input type="text" name="name">
        <input type="submit" value="שלח">
    </form>
</body>
</html>

כאשר הלקוח שולח את התופס תשלח בקשת POST ל/process.php. שם נוכל להגדיר מה לעשות עם המידע שנשלח.

בקובץ process.php:

<?php
$name = $_POST['name'];
echo "שלום, " . htmlspecialchars($name);
?>

דרך
$_POST['name]]
נוכל לגשת לפרמטר name שקיבלנו בבקשת post, ובקוד למעלה אנחנו מדפיסים את התוכן.

נוכל לכתוב גם טופס שאפשר באמצעותו לעלות קובץ.

<form action="upload.php" method="post" enctype="multipart/form-data">
    בחר קובץ להעלאה:
    <input type="file" name="fileToUpload">
    <input type="submit" value="העלה קובץ">
</form>

כך נוכל לכתוב קוד php שמתמודד עם העלאת קבצים
בקובץ upload.php:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
echo "הקובץ הועלה בהצלחה!";
?>