SiXhEaD Template – PHP Template Engine


ในยุคที่ PHP เริ่มเป็นที่นิยม การเขียนจะเป็นแบบ PHP + Html ในไฟล์เดียวซึ่งมันดูรก และไม่เป็นระเบียบ
ตอนนั้นสลับจากภาษา Perl มา PHP มี function ง่ายๆ อยู่จึงได้แปลง Perl มาเป็น PHP มีไม่กี่บรรทัด (code อยู่ท้ายหน้า)
พัฒนาเรื่อยมาจนเป็น class ใช้ถึงตอนนี้ คิดว่าน่าจะมีประโยชน์สำหรับ PHP Programmer จึงได้นำมาให้ลองใช้กัน
*สามารถนำไปใช้ได้กับงานทุกประเภทที่คุณต้องการ ทั้งแจกฟรี และการค้า

หมายเหตุ
– ข้อดีของการแยกไฟล์ Html ออกมาคือเราจะมองเห็น layout ของ Html แบบที่เป็นอยู่จริง คนเขียน CSS สามารถแก้ และดู layout ได้โดยไม่ต้องเรียกผ่าน PHP
– รองรับ PHP5 และ PHP7

[update 28/12/2016]
SiXhEaD.Template.v6.0.4
SiXhEaD.Template.v6.0.4 + CodeIgniter.v3.1.2
โครงสร้างไฟล์ที่เกี่ยวข้อง CodeIgniter

/application/controllers/Sixhead.php
/application/libraries/Tp.php
/application/libraries/SiXhEaD.Template.php
/application/views/_tp_index.html
/application/views/_tp_item.html

วิธีใช้ v5.7 โดย 9AuM scriptdd.com (เก่าแล้ว บาง function อาจมีการเปลี่ยนชื่อ)
ตอนที่ 1 l ตอนที่ 2 l ตอนที่ 3

มือใหม่
เผื่อไม่รู้ห้ามนำไปใช้ แบบ parameter เป็นชื่อไฟล์ตรงๆ เด็ดขาด เป็นเหตุผลด้านความปลอดภัยเรียกว่า Local File Inclusion

ไม่ควร
page.php?file=home.html
ควร
page.php?file=1
แล้วไปเช็คเงื่อนไข 1 เรียก home.html อีกที

function ต้นแบบ

Perl

sub Template {
    my $HTML="";
    open (TEMPLATE, "$template") || die print "CAN NOT OPEN : $template : $!";
    while(<TEMPLATE>) { $HTML .= $_; }
    close(TEMPLATE);

    $HTML =~ s/\$(\w+)/${$1}/g;
    print $HTML;
}

PHP

function Template($template) {
    $fp = fopen($template, "r");
    $HTML = fread($fp, filesize($template));
    fclose($fp);

    $HTML = preg_replace("/\\$(\w+)/e","$$1",$HTML); 
    echo $HTML;
}