وسوم PHP وبنية التضمين
استخدموا وسوم PHP الافتتاحية والختامية وبنية echo المختصرة داخل HTML
وسوم PHP وبنية التضمين درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
مزج PHP وHTML
صُمّمت PHP لتضمينها داخل ملفات HTML. عندما يعالج الخادم ملفًا بامتداد .php، يُنفّذ كل ما يقع بين علامات PHP، بينما يُرسَل كل ما عدا ذلك إلى المتصفح كما هو.
علامات PHP القياسية
علامتا فتح وإغلاق PHP القياسيتان:
<!DOCTYPE html>
<html><body>
<?php
$name = 'Alice';
echo 'Hello, ' . $name;
?>
<p>This is regular HTML.</p>
<?php
echo '<p>Back in PHP!</p>';
?>
</body></html>علامة الإخراج المختصرة
تُخرج علامة الإخراج المختصرة قيمةً من دون كتابة الكلمة echo:
<!-- Long form -->
<h1><?php echo $pageTitle; ?></h1>
<!-- Short form (preferred in templates) -->
<h1><?= $pageTitle ?></h1>
<!-- With escaping -->
<h1><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?></h1>اهرب من الإخراج دائمًا
لا تُخرج أبدًا بيانات يتحكم بها المستخدم من دون إجراء escaping لها:
<?php
$unsafe = '<script>alert("xss")</script>';
$safe = htmlspecialchars($unsafe, ENT_QUOTES, 'UTF-8');
// Define a helper:
function e(string $str): string {
return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
?>
<p><?= e($userInput) ?></p>PHP في سمات HTML
ضمّن PHP في سمات HTML — وأجرِ escaping دائمًا:
<?php
$url = '/profile/' . $user['id'];
$active = $currentPage === 'home' ? 'active' : '';
$count = 5;
?>
<a href="<?= htmlspecialchars($url) ?>" class="nav-link <?= $active ?>">
Inbox <span class="badge"><?= $count ?></span>
</a>تجنّب العلامات المختصرة
لا يُنصح بعلامات الفتح المختصرة (علامة أصغر من ? من دون php) — فهي تعتمد على إعداد في php.ini وقد تتعارض مع XML. استخدم دائمًا علامة الفتح الكاملة أو صيغة الإخراج المختصرة:
<?php
// These are the safe, portable forms:
// <?php echo $name; ?> — full form
// <?= $name ?> — short echo (always enabled 5.4+)
// The short open tag <? is different and unreliable
// Do not use it in code intended for multiple environments.الشروط المضمّنة في القوالب
استخدم العامل الثلاثي المضمّن أو معامل الدمج مع null مباشرةً في القوالب:
<?php
$role = 'admin';
$loggedIn = true;
?>
<nav>
<?= $loggedIn ? 'Welcome back!' : 'Please log in' ?>
<?php if ($role === 'admin'): ?>
<a href="/admin">Admin Panel</a>
<?php endif; ?>
</nav>التخزين المؤقت للإخراج لالتقاطه
التقط إخراج PHP+HTML في متغير باستخدام التخزين المؤقت للإخراج:
<?php
function renderCard(string $title, string $body): string {
ob_start();
?>
<div class="card">
<h2><?= htmlspecialchars($title) ?></h2>
<p><?= htmlspecialchars($body) ?></p>
</div>
<?php
return ob_get_clean();
}
echo renderCard('PHP', 'A server-side scripting language.');PHP_EOL لتوافق المنصات
استخدم PHP_EOL للحصول على نهاية السطر الصحيحة على أي منصة:
<?php
$lines = ['Line 1', 'Line 2', 'Line 3'];
$content = implode(PHP_EOL, $lines);
file_put_contents('output.txt', $content);
// PHP_EOL = "\n" on Linux/Mac, "\r\n" on Windows
echo PHP_EOL === "\n" ? 'Unix line ending' : 'Windows line ending';حذف علامة الإغلاق
أفضل ممارسة: احذف علامة إغلاق PHP في نهاية الملفات التي تحتوي على PHP فقط. فهذا يمنع إرسال مسافات بيضاء غير مقصودة قبل الرؤوس:
<?php
// config.php — PHP only, no closing tag needed
defined('APP_KEY') or define('APP_KEY', 'secret123');
define('DB_HOST', 'localhost');
define('DB_NAME', 'myapp');
// No closing PHP tag here — prevents header issuesكتل PHP متعددة
يمكن أن يحتوي الملف على كتل PHP متعددة تتخللها لغة HTML:
<?php
$items = ['Apple', 'Banana', 'Cherry'];
$count = count($items);
?>
<h2>Shopping List (<?= $count ?> items)</h2>
<ul>
<?php foreach ($items as $item): ?>
<li><?= htmlspecialchars($item) ?></li>
<?php endforeach; ?>
</ul>تحقق سريع
ما صيغة إخراج PHP الموصى بها لإخراج متغير في قالب HTML؟
مراجعة: علامات PHP والتضمين
النقاط الأساسية:
- استخدم
<?php ?>لكتل التعليمات البرمجية، و<?= ?>للإخراج - أجرِ escaping للإخراج دائمًا باستخدام
htmlspecialchars() - احذف علامة الإغلاق في نهاية الملفات التي تحتوي على PHP فقط
- استخدم التخزين المؤقت للإخراج لالتقاط HTML المُصيّر
- استخدم PHP_EOL لنهايات الأسطر القابلة للنقل بين المنصات
الأسئلة الشائعة
هل درس «وسوم PHP وبنية التضمين» مجاني؟
نعم — نص درس «وسوم PHP وبنية التضمين» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «وسوم PHP وبنية التضمين»؟
استخدموا وسوم PHP الافتتاحية والختامية وبنية echo المختصرة داخل HTML تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «وسوم PHP وبنية التضمين»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- وسوم PHP وبنية التضمين
- إنشاء HTML ديناميكي باستخدام حلقات PHP
- تضمين الملفات واستلزامها
- نمط القوالب: فصل المنطق عن العرض