0Pricing
PHP Academy · درس

إنشاء HTML ديناميكي باستخدام حلقات PHP

أنشئوا جداول وقوائم HTML من مصفوفات PHP داخل القوالب

إنشاء HTML ديناميكي باستخدام حلقات PHP درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

إنشاء HTML باستخدام PHP

من أقوى استخدامات PHP إنشاء HTML ديناميكيًا من مصفوفات البيانات — مثل القوائم والجداول والقوائم المنسدلة وقوائم التنقل وغير ذلك.

إنشاء قائمة

صيّر قائمة HTML غير مرتبة من مصفوفة PHP:

<?php
$fruits = ['Apple', 'Banana', 'Cherry', 'Durian'];
?>

<ul>
<?php foreach ($fruits as $fruit): ?>
    <li><?= htmlspecialchars($fruit) ?></li>
<?php endforeach; ?>
</ul>

إنشاء جدول HTML

أنشئ جدولًا ديناميكيًا من مصفوفة ثنائية الأبعاد:

<?php
$users = [
    ['Alice', 'alice@test.com', 'Admin'],
    ['Bob',   'bob@test.com',   'User'],
];
?>
<table>
    <thead><tr><th>Name</th><th>Email</th><th>Role</th></tr></thead>
    <tbody>
    <?php foreach ($users as [$name, $email, $role]): ?>
        <tr>
            <td><?= htmlspecialchars($name) ?></td>
            <td><?= htmlspecialchars($email) ?></td>
            <td><?= htmlspecialchars($role) ?></td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>

إنشاء قائمة منسدلة select

أنشئ عنصر HTML من النوع select من مصفوفة:

<?php
$countries = ['TR' => 'Turkey', 'US' => 'United States', 'DE' => 'Germany'];
$selected  = 'TR';
?>

<select name="country">
<?php foreach ($countries as $code => $name): ?>
    <option value="<?= htmlspecialchars($code) ?>"
        <?= $code === $selected ? 'selected' : '' ?>>
        <?= htmlspecialchars($name) ?>
    </option>
<?php endforeach; ?>
</select>

تطبيق تناوب ألوان الصفوف

طبّق أنماطًا متناوبة على الصفوف لتحسين سهولة القراءة:

<?php
$rows = range(1, 8);
?>

<table>
<?php foreach ($rows as $i => $row): ?>
    <tr class="<?= $i % 2 === 0 ? 'even' : 'odd' ?>">
        <td>Row <?= $row ?></td>
    </tr>
<?php endforeach; ?>
</table>

فئات CSS شرطية

طبّق فئات CSS استنادًا إلى شروط البيانات:

<?php
$tasks = [
    ['title' => 'Write tests',  'done' => true],
    ['title' => 'Deploy app',   'done' => false],
];
?>

<ul class="task-list">
<?php foreach ($tasks as $task): ?>
    <li class="task <?= $task['done'] ? 'done' : 'pending' ?>">
        <?= htmlspecialchars($task['title']) ?>
    </li>
<?php endforeach; ?>
</ul>

روابط ترقيم الصفحات

أنشئ واجهة ترقيم الصفحات من حلقة for:

<?php
$totalPages  = 10;
$currentPage = 3;
?>

<nav class="pagination">
<?php for ($p = 1; $p <= $totalPages; $p++): ?>
    <a href="?page=<?= $p ?>"
       class="<?= $p === $currentPage ? 'active' : '' ?>">
        <?= $p ?>
    </a>
<?php endfor; ?>
</nav>

الحلقات المتداخلة لإنشاء HTML متداخل

أنشئ هياكل HTML متداخلة باستخدام حلقات متداخلة:

<?php
$menu = [
    ['Home', '/', []],
    ['Products', '/products', ['Widgets', 'Gadgets']],
    ['About', '/about', []],
];
?>

<ul>
<?php foreach ($menu as [$label, $href, $sub]): ?>
    <li><a href="<?= $href ?>"><?= htmlspecialchars($label) ?></a>
    <?php if ($sub): ?>
        <ul>
        <?php foreach ($sub as $child): ?>
            <li><?= htmlspecialchars($child) ?></li>
        <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    </li>
<?php endforeach; ?>
</ul>

التعامل مع الحالة الفارغة

تعامل دائمًا مع حالة المصفوفة الفارغة في القوالب:

<?php
$posts = [];
?>

<?php if (!empty($posts)): ?>
    <ul>
    <?php foreach ($posts as $post): ?>
        <li><?= htmlspecialchars($post['title']) ?></li>
    <?php endforeach; ?>
    </ul>
<?php else: ?>
    <p class="empty-state">No posts found. <a href="/new">Create one!</a></p>
<?php endif; ?>

إنشاء سمات البيانات

مرّر البيانات إلى JavaScript عبر سمات بيانات HTML:

<?php
$products = [
    ['id' => 1, 'name' => 'Widget', 'price' => 9.99],
    ['id' => 2, 'name' => 'Gadget', 'price' => 24.99],
];
?>

<div class="product-grid">
<?php foreach ($products as $p): ?>
    <div class="product-card"
         data-id="<?= $p['id'] ?>"
         data-price="<?= $p['price'] ?>">
        <?= htmlspecialchars($p['name']) ?>
    </div>
<?php endforeach; ?>
</div>

PHP وJSON من أجل JavaScript

مرّر مصفوفات PHP بأمان إلى JavaScript باستخدام json_encode:

<?php
$config = [
    'apiUrl'  => '/api/v1',
    'userId'  => $user['id'] ?? 0,
    'locale'  => 'en-US',
];
?>

<script>
const APP_CONFIG = <?= json_encode($config, JSON_HEX_TAG | JSON_HEX_APOS) ?>;
console.log(APP_CONFIG.apiUrl);
</script>

تحقق سريع

ما الدالة التي يجب استخدامها عند إخراج سلاسل يتحكم بها المستخدم داخل HTML لمنع XSS؟

مراجعة: HTML الديناميكي باستخدام الحلقات

التقنيات الأساسية:

  • استخدم الصيغة البديلة ذات النقطتين مع foreach وfor في القوالب
  • أجرِ escaping للإخراج دائمًا باستخدام htmlspecialchars()
  • استخدم فئات CSS شرطية مع العامل الثلاثي في السمات
  • تعامل مع المصفوفات الفارغة باستخدام if/else حول الحلقات
  • مرّر بيانات PHP إلى JavaScript عبر json_encode()

الأسئلة الشائعة

هل درس «إنشاء HTML ديناميكي باستخدام حلقات PHP» مجاني؟

نعم — نص درس «إنشاء HTML ديناميكي باستخدام حلقات PHP» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء HTML ديناميكي باستخدام حلقات PHP»؟

أنشئوا جداول وقوائم HTML من مصفوفات PHP داخل القوالب تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إنشاء HTML ديناميكي باستخدام حلقات PHP»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. وسوم PHP وبنية التضمين
  2. إنشاء HTML ديناميكي باستخدام حلقات PHP
  3. تضمين الملفات واستلزامها
  4. نمط القوالب: فصل المنطق عن العرض
← العودة إلى PHP Academy