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>
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;
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; }
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;
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>
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 %}
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;
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!