roteee's blog

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

 

    $rawExif = exif_read_data($imgName);
    if( isset($rawExif['GPSLatitude']) )
    {
      eval('$degree = $rawExif["GPSLatitude"][0];');
      eval('$mins   = $rawExif["GPSLatitude"][1];');
      eval('$secs   = $rawExif["GPSLatitude"][2];');
      $lat = $degree + ( $mins / 60 ) + ( $secs / 3600 ); 
      if( $rawExif['GPSLatitudeRef'] == 'S' )
      {
        $lat = (-1) * $lat;
      }

      eval('$degree = $rawExif["GPSLongitude"][0];');
      eval('$mins   = $rawExif["GPSLongitude"][1];');
      eval('$secs   = $rawExif["GPSLongitude"][2];');
      $lng = $degree + ( $mins / 60 ) + ( $secs / 3600 ); 
      if( $rawExif['GPSLongitudeRef'] == 'W' )
      {
        $lng = (-1) * $lng;
      }
      
      echo "$lat, $lng";
    }

 

อ้างอิง: http://andrew.hedges.name/experiments/convert_lat_long/

จะเช็คว่า checkbox ถูกติ๊กหรือยังได้อย่างไร ใน jquery

เห็นว่าเป็นประโยชน์ เลยเอามา blog ไว้สักหน่อย จะได้เอาไว้เตือนความจำ :)

// First way
$('#checkBox').attr('checked');

// Second way
$('#edit-checkbox-id').is(':checked');

// Third way for jQuery 1.2
$("input[@type=checkbox][@checked]").each(
    function() { 
       // Insert code here 
    } 
);
// Third way == UPDATE jQuery 1.3
$("input[type=checkbox][checked]").each( 

    function() { 
       // Insert code here 
    } 
);

 

 

การตั้งชื่อตาราง ???

ตอนนี้คุณตั้งชื่อตารางของคุณอย่างไร??? province หรือ provinces ???

ผมสงสัยตัวเองทุกครั้งที่จะตั้งชื่อตาราง แต่ว่าก็ยังไม่เคยได้ข้อสรุปซักที ว่าจะ province หรือ provinces ทำให้ใน database ของผมก็จะมีทั้ง province และ provinces (คือบางตารางเติม s บางตารางไม่เติม s) วันนี้ก็เลยลองถามเพื่อนๆ ซิว่า เขาตั้งยังงัยกัน

ถามไปถามมา บางคนก็ province บางคนก็ provinces อยู่ดี ... จึงไปคุยกับ tongdee แล้ว tongdee ก็ไป google ดู ... อ้าว เจอเข้าจังๆ ที่: http://www.ss64.com/orasyntax/naming.html
Table names are plural, field name is singular*
If the table name contains serveral words, only the last one should be plural:
APPLICATIONS
APPLICATION_FUNCTIONS
APPLICATION_FUNCTION_ROLES

สรุป: หลักสากลนิยม เขาจะตั้งเป็น: field province_id ในตาราง provinces :)

**จบ**


Zend_Acl - การใช้งานเบื้องต้น

Zend_Acl เป็น component สำหรับเอาไว้จัดการ การควบคุมการเข้าถึงข้อมูล (ผมพยายามแปลมาจาก ACL - Access Control List) อธิบายง่ายๆ คือเอาไว้คุมระดับของการใช้งาน insert/update/delete (หรืออื่นๆ) ข้อมูลนั่นเอง

ตัวอย่างเช่น Administrator ใช้งานหน้า admin สามารถ insert/update/delete ได้ทุกอย่าง, นาย A สามารถ insert/update/delete ข่าวได้อย่างเดียว และนาย B สามารถ insert/update/delete ข้อมูลสินค้าได้อย่างเดียว เป็นต้น

หรืออีกตัวอย่าง ถ้าเป็นกรณี Blogging service คุณเจ้าของ blog สามารถ read/write/publish/edit/delete blog ของตัวเองได้ และ guest (คนทั่วไป) สามารถ read ได้อย่างเดียว เป็นต้น

เหล่านี้เขาเรียกว่า ACL - Access Control List

ใน Zend_Acl ก็จะเกี่ยวข้องกับ 2 สิ่ง ได้แก่:

Smarty หรือ Zend_View ?

บทความเดิม บทความแรกๆ ที่ผมเขียนเกี่ยวกับการนำ Smarty มาใช้ร่วมกับ Zend Framework

แต่หลังจากที่ผมไ ด้ลองใข้ Zend_View ซักระยะนึง ขออนุญาต แสดงความคิดเห็นต่อคำถามที่ว่า "จะใช้ Smarty หรือ Zend_View ดี?" ซักเล็กน้อย

ความเห็นส่วนตัวน้ะครับ ถ้าใครที่ไม่เคยใช้ Smarty (หรือใช้แต่ยังไม่ติด) ก็ลองใช้ Zend_View ไปเลยก็น่าจะดีน้ะ เพราะว่าจะได้ไม่ต้องศึกษาและใช้ libs หลายเจ้า หรือถ้าอยากหัดใ:ช้ Smarty อันนั้นก็คงไม่ว่ากัน

PDT - PHP Development Tools

 

จากบทความเดิม "การตั้งค่าสำหรับการพัฒนาโปรแกรมด้วย PHP" ของคุณ overbid เขียนไว้ละเอียดดีทีเดียว โดยส่วนตัวผมได้ลองใช้ Eclipse PDT แล้วชักติดใจ โดยเฉพาะ ถ้าเขียนโปรแกรมแบบ OO แล้วช่วยได้เยอะมากๆ เลยอยากจะมาชวนให้มาลองใช้กัน (ใช้แล้วอาจจะลืม EditPlus ไปเลยก็ได้น้ะ :-)

ไม่รู้จะ blog อะไร ... เหนื่อย

เหนื่อยๆๆๆ ไม่เคยเหนื่อยยังงี้มาก่อนเรย หรือว่าแก่แล้วก็ไม่รุ๊ หุหุ

ตัวอย่าง code ง่ายๆ สำหรับ generate unique id เป็นตัวเลข

ผมเอามา blog เก็บไว้เผื่อได้ใช้เอง อิอิ
<?php
    for($i=0; $i<20; $i++)
    {
        echo getSessionId() . "\n";
    }
 
    function getSessionId()
    {
        list($usec, $sec) = explode(" ", microtime());
        $mtime = substr(sprintf("%08f", $usec), 2);
        return date('YmdHis') . $mtime;
    }
?>

Zend Framework and Smarty Integration

เกริ่นนำ

ทำไมต้องใช้ Smarty ทำไมไม่ใช้ Zend_View ไปเลย??

นั่นหน่ะสิครับ ... โดยส่วนตัว ผมก็ไม่กล้าฟันธงน้ะครับว่าทำไม เพราะอะไร ผมคิดว่า ก็แล้วแต่ความชอบ และความเหมาะสมกับงานของใครของมัน ก็แล้วกัน :)

mb_truncate จำกัดขนาดของ string ใน smarty แบบ multi-byte

เป็น modifier ที่แปลงจาก modifier truncate มา เพราะว่า truncate อันเก่า เวลาเอามาตัด UTF-8 ภาษาไทย แล้วตัดไม่เนียน มักจะมี ?? ติดท้ายมาอยู่เรื่อยๆ เนื่องจาก truncate อันเก่าทำงานในโหมด ASCII ก็เลยทำงานออกมาอย่างนั้น

แต่สำหรับใครใช้ truncate กับ UTF-8 ภาษาไทย ลองเอา mb_truncate นี้ไปใช้ดูคับ ผมปรับจาก truncate ตัวเก่า ก็ไม่ได้ทำอะไรมาก ก็เปลียน string function ให้เป็น multi-byte string function แทน และตอนนี้ fixed encoding ไว้ที่ UTF-8 ถ้าใครทำงานกับ encoding แบบอื่น ไม่ใช่ UTF-8 ก็ต้องเอาไปปรับเพิ่มเอง

 



©2007-2010 PHPZealots.com. All right reserved.
Syndicate content