แสดงบทความที่มีป้ายกำกับ PHP แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ PHP แสดงบทความทั้งหมด

16 มิถุนายน 2550

Zip และ Unzip ด้วย PHP

บันทึกวิธีการ Zip/Unzip ด้วย PHP:
1. Download dUnzip2 จาก phpclasses.org มี 2 classes, dZip & dUnzip

2. Zip โดยใช้ dZip classs
require_once("dzip.inc.php");
$zip = new dZip("archive.zip");
$zip->addFile("myfile.doc", "myfile.doc"); // parameter แรกเป็น source file, parameter สองเป็น ชื่อ file ใน zip
$zip->addDir("subdir"); // สร้าง Folder ใน Zip
$zip->addFile("anotherfile.jpg", "subdir/newname.jpg"); // เพิ่ม file ใต้ Folder
$zip->save();
3. Unzip โดยใช้ dUnzip class
require_once("dzip.inc.php");
$zip = new dUnzip("archive.zip");
$zip->unzipAll("targetfolder"); // Unzip ทุก file ไปยัง folder ชื่อ targetfolder
$zip->unzip("source.doc", "destination.doc"); // unzip source.doc ใน zip file เป็น destination.doc

28 พฤษภาคม 2550

php: baaGrid::setGPCol

baaGrid เป็น Data Grid class ตัวหนึ่งซึ่งสามารถแสดงผล SQL Query จาก Database ได้หลายตัว โดย Default เป็น MySQL

ความสามารถหนึ่งที่ทำให้ baaGrid แสดงรายงานในแบบตารางได้ดีคือ General Purpose Column ซึ่งจะสามารถนำข้อมูลจาก query มาแสดงในรูปแบบอื่นได้เช่น image หรือ hyperlink แต่อย่างหนึ่งซึ่งตัว baaGrid Guide ไม่ได้บอกไว้ก็คือการสนับสนุนการใช้ function ได้ (**อย่างมีข้อจำกัด**) ทั้ง php built-in และ user defined โดยในการ parse funtion นั้น baaGrid ใช้ function_exists ของ php ตรวจอักขระที่ ตำแหน่ง 0 จนถึง วงเล็บเปิดแรก ถ้ามี function ที่รู้จักก็จะผ่านไปให้ eval ของ php ทำงาน
ตัวอย่าง
...
$grid->setGPCol(4, 'myfunction(#1)'); // pass column 1 from query to myfunction, valid for numeric data
$grid->setGPCol(5, 'myfunction("#2")'); // pass column 2 from query to myfunction, valid for string data
$grid->setGPCol(6, 'myfunction(#1)+123'); // also valid
...
$grid->setGPCol(6, '123+myfunction(#1)'); // invalid, function_exists('123+myfunction') returns null