Rumah > pembangunan bahagian belakang > tutorial php > Enjin templat untuk fungsi PHP

Enjin templat untuk fungsi PHP

PHPz
Lepaskan: 2023-05-18 18:56:01
asal
1611 orang telah melayarinya

Enjin templat untuk fungsi PHP

Dalam pembangunan web, enjin templat adalah bahagian penting. Ia boleh mencampurkan data dinamik dan fail templat untuk menjana kod HTML akhir. Bahasa PHP adalah salah satu bahasa pembangunan yang biasa digunakan dalam pembangunan web, dan sememangnya terdapat banyak enjin templat yang sangat baik. Antaranya, enjin templat yang dilaksanakan menggunakan fungsi PHP bukan sahaja ringkas dan mudah digunakan, malah tidak memerlukan perpustakaan atau sambungan tambahan.

Artikel ini akan memperkenalkan cara menggunakan fungsi PHP untuk melaksanakan enjin templat mudah.

1. Prinsip pelaksanaan enjin templat

Prinsip pelaksanaan enjin templat adalah sangat mudah: gunakan ruang letak untuk menggantikan data dinamik dalam fail templat dan gantikan ruang letak dengan data sebenar dalam kod .

Sebagai contoh, fail templat template.html mengandungi ruang letak:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>{$title}</title>
</head>
<body>
    <h1>{$title}</h1>
    <p>{$content}</p>
</body>
</html>
Salin selepas log masuk

Antaranya, {$title} dan {$content} ialah ruang letak, mewakili data dinamik yang perlu diganti.

Dalam kod PHP, kod untuk membaca fail templat dan menghuraikan ruang letak adalah seperti berikut:

$data = array(
    'title' => '标题',
    'content' => '内容'
);

$template = file_get_contents('template.html');

foreach ($data as $key => $value) {
    $template = str_replace('{$'.$key.'}', $value, $template);
}

echo $template;
Salin selepas log masuk

Kod ini mula-mula membaca kandungan fail templat dan menggantikan ruang letak dengan data sebenar Gantikan dan akhirnya keluarkan kod HTML yang dihasilkan.

2. Gunakan fungsi PHP untuk melaksanakan enjin templat

Untuk memudahkan penggunaan semula dan penyepaduan, kami boleh merangkumkan pelaksanaan enjin templat ke dalam fungsi. Berikut ialah pelaksanaan mudah:

function render_template($template_file, $data) {
    $template = file_get_contents($template_file);
    
    foreach ($data as $key => $value) {
        $template = str_replace('{$'.$key.'}', $value, $template);
    }
    
    return $template;
}
Salin selepas log masuk

Fungsi ini menerima dua parameter, $template_file mewakili laluan fail templat dan $data mewakili data dinamik yang perlu diganti. Nilai pulangan fungsi ialah kod HTML yang dihasilkan.

Kod contoh untuk memanggil fungsi ini:

$data = array(
    'title' => '标题',
    'content' => '内容'
);

$html = render_template('template.html', $data);

echo $html;
Salin selepas log masuk

3 Gunakan warisan templat untuk melaksanakan templat kompleks

Untuk templat kompleks, anda mungkin perlu menggunakan warisan templat untuk melaksanakannya. Warisan templat ialah mekanisme penggunaan semula templat yang boleh menggabungkan berbilang fail templat ke dalam fail templat yang lengkap.

Berikut ialah contoh yang dilaksanakan menggunakan warisan templat: Katakan kita mempunyai dua fail templat, base.html dan page.html, dengan base.html ialah fail templat yang mengandungi keseluruhan bingkai halaman dan page.html Ia adalah fail templat untuk kandungan halaman.

base.html Kandungan fail adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>{$title}</title>
</head>
<body>
    <div id="header">
        <h1>{$site_name}</h1>
    </div>
    
    <div id="content">
        {% block content %}{% endblock %}
    </div>
    
    <div id="footer">
        © 2020 {$site_name}
    </div>
</body>
</html>
Salin selepas log masuk

Antaranya, kami menggunakan tajuk, nama laman web, dan lain-lain dalam halaman sebagai pemegang tempat, dan menggunakan {% block content %}{% endblock %} untuk sertakan sebahagian daripada kandungan halaman Menunjukkan bahawa bahagian kandungan ini akan digunakan dalam templat kanak-kanak. Kandungan fail

page.html adalah seperti berikut:

{% extends "base.html" %}

{% block content %}
    <h2>{$title}</h2>
    <p>{$content}</p>
{% endblock %}
Salin selepas log masuk

Di mana, {% extends "base.html" %} menentukan penggunaan base.html sebagai templat induk dan mengandungi kandungan halaman melalui {% block content %} dan {% endblock %} Templat separa membolehkan anda mengawal dan menyesuaikan bahagian kandungan ini dalam templat induk.

Kod sampel untuk halaman hasil akhir adalah seperti berikut:

$data = array(
    'title' => '页面标题',
    'content' => '页面内容',
    'site_name' => 'My Site'
);

$html = render_template('page.html', $data);

echo $html;
Salin selepas log masuk

Semasa proses pemaparan, fail templat page.html akan dimuatkan dahulu dan didapati ia menggunakan base.html sebagai templat induk, jadi Teruskan memuatkan fail templat base.html. Apabila memuatkan fail templat induk, kerana {% block content %} dan {% endblock %} digunakan untuk mentakrifkan kandungan halaman, kandungan dalam {% block content %} dan {% endblock %} dalam templat anak boleh digantikan dengan kandungan dalam {% block content %}{% endblock %} dalam induk bahagian templat.

4. Kesimpulan

Artikel ini memperkenalkan cara menggunakan fungsi PHP untuk melaksanakan enjin templat mudah dan melaksanakan templat kompleks dengan menggunakan warisan templat. Enjin templat yang dilaksanakan oleh fungsi PHP adalah ringkas dan mudah digunakan, sesuai untuk projek kecil atau pembangunan prototaip pantas. Jika anda memerlukan fungsi yang lebih maju, seperti caching, kompilasi, penyahpepijatan, dsb., adalah disyorkan untuk menggunakan perpustakaan enjin templat sumber terbuka sedia ada, seperti Smarty, Twig, dsb.

Atas ialah kandungan terperinci Enjin templat untuk fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan