Browsing articles tagged with " เทคนิค"
May 25, 2011
แว่นตก

สั่งพิมพ์เอกสารเป็นหน้าๆ โดยใช้ 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

 

May 25, 2011
แว่นตก

วิธีการส่งค่าไปใน 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 ด้วยที่แนะนำวิธีนี้ :)

 

May 25, 2011
แว่นตก

ตรวจสอบ 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 ของเครื่องนั้น ๆ จริง ๆ

 

May 25, 2011
แว่นตก

ข้อแตกต่าง ระหว่าง “ กับ `

หลายคน คงเคยใช้ ” กับ ` แต่อาจจะยังไม่ทราบ ถึงข้อแตกต่างระหว่างสองตัวนี้

สมมุติว่า เรา เขียน code ตามข้างล่างนี้

1
2
3
4
5
<?php
   $a='test';
   echo '$a';  //  ผลลัพธ์คือ  $a
   echo "$a";  // ผลลัพธ์คือ  test
?>

ซึ่งจะแสดงให้เห็นว่า เครื่องหมาย ` จะให้ผลลัพธ์ออกมาเลย
ส่วนเครื่องหมาย ” จะนำค่าไปประมวลผลก่อน จึงจะแสดงผล

ดังนั้น (อันนี้คือข้อแนะนำนะ)
ถ้าเราต้องการแค่แสดงผล
แนะนำให้ใช้เครื่องหมาย ` นะครับ จะทำให้ code เราประมวลเร็วขึ้น

 

ขอให้มีความสุขในการเขียน code นะครับ

 

จริง ๆ แล้วผมก็ไม่รู้มาก่อนหรอกนะ
ต้องขอขอบคุณน้อง ATT@MKT ด้วยนะครับ :)

 

May 25, 2011
แว่นตก

กำหนด 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" />

 

May 25, 2011
แว่นตก

เพิ่มความเร็วการทำงานของ 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 ให้ทำงานเร็วขึ้น