อยากทราบโค๊ดในกรณ๊ที่ต้องการให้ PHP สร้างไฟด์ HTML ใหม่ขึ้นมา
วิธีแรกคือใช้การเขียนเป็น text file แต่เป็น Save เป็น .HTML ครับ
วิธีสองคือแสดงผลเป็น HTML ปกติ แล้วใช้ function file_get_contents() อ่าน URL แล้วนำมาเขียน Text file ครับ
Code (PHP)
<?php
$homepage = file_get_contents('/webpage/report.php');
echo $homepage;
?>
เอาค่า $homepage ไปเขียนลง text file แต่ save เป็น .HTML วิธีนี้ง่ายกกว่า ประหยัดการเขียน code
Date :
2012-03-08 16:13:37
By :
webmaster
Code (PHP)
<?php
$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the file
file_put_contents($file, $current);
?>
http://php.net/manual/en/function.file-put-contents.php
Date :
2012-03-08 16:14:25
By :
webmaster
ถ้าหมายถึง ให้เก็บ output จากการรันของตัวสคริปต์นั้นๆ เอง
ปกติเราจะใช้ output buffering ครับ
Code (PHP)
<?php
ob_start(); // เริ่มการใช้ output buffering เมื่อใช้ฟังก์ชั่นนี้ php จะยังไม่ output โดยทันที แต่จะเก็บไว้ใน buffer ก่อน
// ตรงนี้เป็นโค้ดอะไรก็ตามของคุณ ที่มีการส่ง output ออกมา
$output = ob_get_contents(); // ฟังก์ชั่นนี้จะคืนค่าของ output ทุกอย่างที่ php สร้างออกมาทั้งจาก echo หรือจากการเปิดปิด <?php ?> ก็ตาม ซึ่ง php ได้เก็บเอาไว้ใน buffer จากการที่เราเรียกใช้ ob_start()
// หลังจากนั้นเราก็เอา $output เนี่ย ไปเซฟลงไฟล์ ลงดาต้าเบส หรืออะไรก็ตามแต่ครับ
// นี่คือตัวอย่างการเซฟไฟล์แบบที่คุณต้องการ คือเราจะตรวจว่ามีไฟล์ report?.html อยู่แล้วหรือยัง
$i = 1;
while (file_exists("report$i.html")) { // เช็คว่ามีไฟล์ตามค่า $i แล้วหรือยัง ถ้ามีแล้วก็เพิ่มค่า $i ไปเรื่อยๆ
$i++;
}
file_put_contents("report$i.html", $output);
?>
Date :
2012-03-08 17:03:51
By :
actioncookie
Load balance : Server 00