สั่งพิมพ์เอกสารเป็นหน้าๆ โดยใช้ CSS ควบคุม
ในบางครั้งเราต้องการเขียนโปรแกรมเพื่อพิมพ์เอกสาร แต่เราก็ต้องมาทดสอบในการพิมพ์ว่าต้อง
เว้นวรรคมากแค่ไหน ถึงจะไปหน้าใหม่ แต่วิธีที่จะบอกทำให้เราสามารถ ควบคุมการพิมพ์ของเรา
ได้ดีขึ้น ได้สะดวกมากขึ้น
ส่วนของ CSS
1 2 3 4 5 6 7 8 9 10 | <style type="text/css"> <!-- @media print { div.page { height: 100%; margin: 0px 0px 0px 0px; } } --> </style> |
ส่วนของ Html
1 2 | <div class="page">aa</div> <div class="page">bb</div> |
จากตัวอย่างจะเห็นว่า ใน CSS มีการเรียกใช้ Media Print คือการสั่งให้จัดการกับสื่อหรือ
Output ที่เป็น Printer ซึ่งเรากำหนดให้มีผลกับช่วง tag <div>
เมื่อคุณลองสั่งรัน Script แล้วสั่งพิมพ์ออกมา ก็จะเห็นว่า Printer
จะพิมพ์ออกมา 2 หน้า โดยหน้าแรกจะเป็น aa หน้า 2 จะเป็น bb
อ้างอิงจาก www.siamdev.com
วิธีการส่งค่าไปใน setTimeout()
ผมเคยเขียนโปรแกรม แล้วต้องการหน่วงฟังก์ชั่นการทำงาน แต่ต้องการส่งค่าตัวแปร ไปในฟังก์ชั่นนั้นด้วย
ซึ่งผมก็หาวิธีตั้งมากมาย แล้วก็หาไม่เจอซักที แต่สุดท้ายก็รู้จนได้
นั้นก็คือ
1 2 3 4 5 | <script type="text/javascript"> var bTime=4000; // หมายถึง หน่วงเวลาไว้ 4 วินาที var bVal="rotateimage('"+obj+"')"; setTimeout(eval(bVal),bTime); </script> |
โดยที่
bTime คือ ค่าที่ใช้หน่วงโปรแกรม หน่วยคือ มิลลิวินาที (10-3)
rotateimage คือ ชื่อ function ที่เรียกใช้
obj คือ ตัวแปรที่ต้องการส่งไป
ต้องขอขอบคุณน้อง ATT@MKT ด้วยที่แนะนำวิธีนี้
ตรวจสอบ IP Address จริง
ในบางครั้งเราต้องการตรวจสอบคนที่เข้ามาใช้เวปเรา และโดยส่วนมาแล้วจะตรวจสอบโดย
check IP Address ซึ่งถ้าเราใช้
1 2 3 4 | <?php $ip=getenv(REMOTE_ADDR); print "IP Address is $ip"; ?> |
เราก็จะได้ IP Address มา แต่ก็ถ้าเครื่องนั้น ๆ ใช้ Proxy Server เราจะได้ IP Address ของ
Proxy มาแทน ซึ่งเราควรแก้ไข code ที่ใช้ มาเป็น
1 2 3 4 5 6 7 | if (getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } elseif (getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } else { $ip = getenv(REMOTE_ADDR); } |
จะทำให้เราได้ IP Address ของเครื่องนั้น ๆ จริง ๆ
ข้อแตกต่าง ระหว่าง “ กับ `
หลายคน คงเคยใช้ ” กับ ` แต่อาจจะยังไม่ทราบ ถึงข้อแตกต่างระหว่างสองตัวนี้
สมมุติว่า เรา เขียน code ตามข้างล่างนี้
1 2 3 4 5 | <?php $a='test'; echo '$a'; // ผลลัพธ์คือ $a echo "$a"; // ผลลัพธ์คือ test ?> |
ซึ่งจะแสดงให้เห็นว่า เครื่องหมาย ` จะให้ผลลัพธ์ออกมาเลย
ส่วนเครื่องหมาย ” จะนำค่าไปประมวลผลก่อน จึงจะแสดงผล
ดังนั้น (อันนี้คือข้อแนะนำนะ)
ถ้าเราต้องการแค่แสดงผล
แนะนำให้ใช้เครื่องหมาย ` นะครับ จะทำให้ code เราประมวลเร็วขึ้น
ขอให้มีความสุขในการเขียน code นะครับ
จริง ๆ แล้วผมก็ไม่รู้มาก่อนหรอกนะ
ต้องขอขอบคุณน้อง ATT@MKT ด้วยนะครับ
กำหนด Encoding ให้กับหน้าเวป
ถ้าใช้ใน PHP ให้กำหนด
1 | header ("Content-type: text/html; charset=utf-8"); |
แต่ถ้าใช้ใน MySQL ให้กำหนด
1 | mysql_query("SET NAMES UTF8"); |
แต่ถ้าใช้ใน HTML ให้กำหนด
1 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
เพิ่มความเร็วการทำงานของ loop
โดยส่วนมากแล้ว เวลาเขียน php มักจากหนีไม่พ้นจากการเขียน loop ซึ่งถ้าเขียน
1 2 3 | for ($a=0;$a=count($array_name);$a++) { do some thing... } |
จะทำให้การทำงานของ loop นานขึ้น
แต่ถ้าเปลี่ยนเป็น
1 2 3 4 | $count=count($array_name); for ($a=0;$a=$count;$a++) { do some thing... } |
จะช่วยลดการทำงานของ loop ให้ทำงานเร็วขึ้น

