php basic

Coding Standard in PHP / PHP Coding Style - ทบทวนพื้นฐาน รูปแบบการเขียน Code PHP

PHP Code Demarcation - การเปิด-ปิด PHP Code

จะต้องเปิด tag ด้วยรูปแบบเต็ม "<?php" ตามมารตฐานของ PHP tags เสมอ สำหรับ tag แบบสั้นนั้นไม่เป็นที่ยอมรับแล้ว แต่ก็สามารถตั้งใน php.ini ให้เปิดใช้ได้อยู่ แต่ในอนาคตไม่แน่อาจจะปิดไปถาวรเลยก็เป็นได้

Looping จนครบทุกวันที่

เขียนแบบง่ายๆ น้ะครับ (หรือจะเรียกว่าแบบขี้เกียจก็ได้) แบบไม่มี if-else วันสุดท้ายของเดือนอะไรให้วุ่นวาย

<?php
  for ($i = 0; $i < 365; $i++) {
    echo date('Y-m-d', mktime(0,0,0, 1, (1 + $i), 2011));
    echo "\n";
}

(แต่ script นี้จะมี bug นิดหน่อย สำหรับปีใหนที่เดือนกุมภาพันธ์มี 29 วัน หรือ ปีไหนมี 366 วัน Cool)

Tags:

อ่าน header ทั้งหมดที่ client ส่งมา

เผื่ออยากจะ clone headers ทั้งหมดจาก client

$headers = apache_request_headers();
foreach ($headers as $header => $value) {
  echo "$header: $value\n";
}

การ compare string ด้วย strpos() vs preg_match() อันไหนไวกว่ากัน?

จากที่ google ดูเห็นเขาเทียบความเร็วในการประมวลผลระหว่าง strpos() และ preg_match() ไว้ที่นี่ ผมตัดข้อมูลสั้นๆมาแปะไว้ให้ดูดังนี้

การ selected option จากข้อมูลที่เคยเลือกไว้แล้ว โดยไม่ต้องใช้ if-else

<?php
    $select = $oldData['select'];
    ${'selected' . $select} = ' selected="selected"';

    /*
    if ($select == 1) {
        $s1="selected" ;
    } else if ($select == 2) {
        $s2="selected" ;
    } else if ($select == 3) {   
        $s3="selected" ;
    } else {
        $s4="selected" ;
    }
    */
?>
<select name="select" id="select">
    <option value="">Please select an option below:</option>   
    <option value="1"<?php echo @$selected1 ?>>Option#1</option>

Convert Exif 'GPSLatitude' และ 'GPSLongitude' เป็น lat, lng เพื่อ นำไปปักหมุดใน Google Maps

ปัจจุบันภาพถ่ายจากกล้องในมือถือที่มีระบบ GPS มีอยู่จำนวนมาก และส่วนมากก็จะสามารถระบุข้อมูลพิกัด ตำแหน่งที่ถ่ายภาพมาในภาพถ่ายได้เลย (Geotagging) ซึ่งข้อมูลเหล่านี้จะเก็บอยู่ใน meta data ของภาพที่เรียกว่า "Exif - Exchangeable image file format"

วิธีการแตกเอาค่าพิกัดจาก Exif มาเพื่อใช้งาน เช่น แตกออกมาแล้ว convert ข้อมูลเป็น latitude, longitude เพื่อนำไปปักหมุดบน Google map  สามารถทำได้ประมาณนี้ครับ

การเขียน If/Else แบบสั้น

ปกติเราจะเขียน If/Else แบบนี้:

<?php
  if ($myBool == TRUE) {
    $a = 'foo';
  } else {
    $a = 'bar';
  }
?>

ถ้าเป็นแบบสั้น (เคยเห็นฝรั่งเรียกว่า แบบ Shorthand):

<?php
  $a = ($myBool == TRUE) ? 'foo' : 'bar';

  // หรือ ถ้าเขียนบรรทัดเดียวแล้วยาวเกินไป หรือไม่พอก็
  $a = ($myBool == TRUE)
     ? 'foo'
     : 'bar';
?>

ซึ่งนอกจากจะใช้ในการกำหนดค่าให้ตัวแปร เราก็สามารถประยุกต์เขียนเข้าไปประโยคได้ เช่น

Subscribe to RSS - php basic