Posts Tagged ‘PHP’

30
October

การใช้งาน SyntaxHighlighter

เขียนโดย admin | อ่าน 165

วันก่อนไปเจอในบล็อกของใครแล้วก็ไม่รู้ เขาแสดงโค้ด php บนหน้าเว็บด้วยความสวยงาม หันมาดูของเรา ทำม้ายทำไม มันถึงไม่มีสีสันอย่างเขาบ้าง ด้วยความที่เห็นคนอื่นมี ตัวเองก็อยากมีบ้าง เลยใช้บริการเฮียกู ค้นหา และแล้วพรหมลิขิต บันดาล ชักพา ให้ไปเจอกับโค้ดตัวหนึ่งที่เขาเขียนไว้แจกฟรี นามกรว่า SyntaxHighlighter1.1.5

 

http://code.google.com/p/syntaxhighlighter/

30
October

การต่อข้อความอีกรูปแบบหนึ่ง

เขียนโดย admin | อ่าน 86

การต่อข้อความ

ข้าพเจ้าคิดว่าทุกท่านที่เขียน PHP ทราบกันดีกว่า Operator ในการต่อข้อความนั้นคือ . (จะเรียกดอทหรือจุด ก็สุดแต่ใจจะไขว่คว้า)

ดูนะครับ

< ?php
$output  =<!DOCTYPE html PUBLIC-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>\n’;
$output .=<html xmlns=”http://www.w3.org/1999/xhtml”>\n’;
$output .=<head>\n’;
$output .=<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8/>\n’;
$output .=<title>Untitled Document</title>\n’;
$output .=</head>\n’;
$output .=<body>\n’;
$output .= ‘ตัวอย่างการต่อข้อความ เยอะๆ\n’;
$output .=</body>\n’;
$output .=</html>\n’;
 
echo $output;
?>
29
October

ต่อเนื่องจาก ฟังก์ชั่นสำหรับแปลง ตัวเลขเดือน เป็นตัวหนังสือ

เขียนโดย admin | อ่าน 168

จากบทความก่อนหน้านี้ (ฟังชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ) จะเห็นว่า ผมใช้เลขดัชนีของ Array เป็นตัวเลือกข้อมูลที่จะส่งออกจาก function

 

ทีนี้มันมีปัญหาอยู่ว่า เลขดัชนีของ Array จะเริ่มต้นจาก 0 ขึ้นไปเรื่อยๆ แล้วถ้า เรามีตัวเลขติดลบที่ต้องการจะแปลง เราจะใช้ function

ในลักษณะนี้ได้หรือไม่ เช่นในฐานข้อมูลเราเก็บสถานะใบสั่งซื้อ โดยเราสมมติตัวเลขว่า -2=ใบสั่งซื้อไม่สมบูรณ์ , -1=ยกเลิกใบสั่งซื้อ ,

0=รอการยืนยันจากผู้ซื้อ , 1=กำลังส่งของ , 2=สินค้าถึงมือผู้รับแล้ว เป็นต้น

เมื่อตัวเลขเริ่มจาก -2 จะทำไงดี

28
October

การใช้งาน UTF-8 แบบสมบูรณ์

เขียนโดย admin | อ่าน 473

เดี๋ยวนี้เว็บไทยโดยส่วนใหญ่เริ่มเปลี่ยนการใช้งานจาก TIS-620 มันเป็น UTF-8 กันแล้ว การจะใช้งาน UTF-8 อย่างสมบูรณ์นั้น

ต้องประกอบ ไปด้วยส่วนประกอบ ต่อไปนี้ ***ถ้าไม่เขียนติดต่อ database ก็ข้ามไป

1. database ต้องกำหนดเป็น UTF8

2.table ต้องกำหนดเป็น UTF8

3. filds ที่เป็น char , varchar , text , tinytext , meduimtext , longtext ต้องกำหนดเป็น UTF8

4. การเชื่อมต่อเพื่อใช้งาน database ต้องกำหนด encoding เป็น UTF8

28
October

ฟังก์ชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ

เขียนโดย admin | อ่าน 155

เคยมีสักครั้งมั้ย ที่คุณจะต้องเขียนฟังชั่นเพื่อแปลง จากตัวเลขประจำเดือน เป็นตัวหนังสือ เช่นแปลงจาก 1 เป็น มกราคม แล้วคุณเขียนยังไง?

 

วันนี้ผมมีวิธีการเขียนฟังชั่นแปลง ตัวเลขเดือน เป็น ตัวหนังสือ อย่างง่ายๆ และสั้นๆ โดยใช้ Array เข้ามาช่วย ดูนะครับ

<?php
function func_conv_month( $input ){
 
    $arr_month = array( “” , “มกราคม” , “กุมภาพันธ์” , “มีนาคม” ,
                       “เมษายน” , “พฤษภาคม” , “มิถุนายน” ,
                       “กรกฎาคม” ,”สิงหาคม” , “กันยายน” ,
                       “ตุลาคม” , “พฤศจิกายน” , “ธันวาคม” ) ;
 
    return $arr_month[ $input ] ;
 
}
?>

 
เวลาเรียกใช้ ก็ส่งตัวเลขเดือน เข้าไปในฟังชั่น ฟังชั่นก็จะคืนค่า เดือนเป็นตัวหนังสือกลับมา

<?php
echo func_conv_month( 2 ) ; // กุมภาพันธ์
?>

ง่ายมั้ย!!!

28
October

Ternary operator

เขียนโดย admin | อ่าน 94

เขามีนามมังกรว่า ternary operator

(เงื่อนไข) ? คืนค่านี้ถ้าเป็นจริง : คืนค่านี้ถ้าเป็นเท็จ

ternary operator ก็คือ if else แบบย่อส่วน

ดูประโยคเงื่อนไขนี้นะครับ

เมื่อเปลี่ยนมาใช้ ternary operator จะเหลือแค่

สั้นเหมือนของเด็กเลย

ternary operator นี้ จะตรวจสอบประโยคในวงเล็บ หน้าเครื่องหมาย ? ถ้าเป็นจริง ก็จะคืนค่า “ตัวแปร SESSION ใช้งานได้” กลับไป แต่ถ้าเป็นเท็จ ก็จะคืนค่า “ตัวแปร SESSION ใช้งานไม่ได้” โดยปกติแล้ว เขาจะนิยมเอาไปใช้ในการกำหนดค่าตัวแปร แบบทางเลือก เห็นฝรั่งใช้กันมาก ternary operator นี้ บางครั้งผมก็ใช้ บางครั้งผมก็ใช้ if else เต็มรูปแบบแทน ขึ้นอยู่กับว่า โค้ดบริเวณใกล้เคียงยากหรือง่าย ถ้ายากผมเลือกใช้ if เพราะมันอ่านง่ายกว่า ทั้งกับตัวเองและผู้อื่น ถ้าโค้ดแถวนั้นง่ายไม่มีอะไรซับซ้อน ก็จะใช้ ternary เพราะมันสั้นกว่า

สำหรับผมแล้ว เวลาเขียนโปรแกรม จะต้องมองไปถึงเพื่อนร่วมงานด้วย ว่ามีทักษะประมาณไหน แล้วก็เขียนโค้ดให้เพื่อนในกลุ่ม อ่านได้ไม่ยากนัก ไม่ใช่ว่า เพื่อนในกลุ่มยังไม่มีใครเข้าใจเรื่อง OOP เลย แต่เรารู้ เราก็เลยล่อ OOP ซะเต็มแรงม้า อย่างนี้ ถ้าจะมอบงานให้เพื่อนต่อ เพื่อนจะทำไง หรือบางทีโค้ดที่เขียนอยู่ สามารถจะเขียนให้สั้นและเร็วได้ แต่ผมไม่ทำ เพราะคนอื่นอ่านและทำความเข้าใจยาก เป็นต้น

จึงไม่แปลกใจเลยว่า เคยได้ยินคำพูดของใครคนหนึ่งที่บอกว่า การเขียนโปรแกรมไม่ใช่แค่การพิมพ์ แต่เป็นทั้งศาสตร์และศิลป์

แหล่งข้อมูลเพิ่มเติม

http://www.totallyphp.co.uk/tutorials/using_if_else_ternary_operators.htm

28
October

แจกฟังก์ชั่นแปลง ปี-เดือน-วัน เป็น ผ่านมาแล้ว กี่วัน กี่ชั่วโมง กี่นาที กี่วินาที

เขียนโดย admin | อ่าน 696

พอดีวันนี้เขียนโปรแกรม ๆหนึ่ง ที่ต้องแสดง วันที่สร้าง และวันที่อัปเดต รายการ ซึ่งผมเก็บลงฐานข้อมูลในรูปแบบ 2008-01-31 12:10:21

เมื่อผมนำรายการมาแสดง มันจะเป็นแบบนี้

 

หัวข้อ create modify
รายงานจำนวนงานถ่วงล้อ 2008-05-13 12:00:01 2008-05-20 00:10:30
รายงานยอดเจียรจานดิสก์เบรกหลัง 2008-05-13 11:51:42  

 

วันที่สร้าง ก็เป็นอย่างที่เห็น วันที่อัปเดต ก็เป็นอย่างที่เห็น ดูยากเนอะ ก็เลยมีความคิดแว้บขึ้นมา เปลี่ยนวันที่แก้ไข จากอย่างที่เห็น ให้เป็น

 

หัวข้อ create modify
รายงานจำนวนงานถ่วงล้อ 2008-05-13 12:00:01 1 วัน 10ชั่วโมง 5นาที 20 วินาที ผ่านมา
รายงานยอดเจียรจานดิสก์เบรกหลัง 2008-05-13 11:51:42  

 

ดูง่ายกว่าเย้อะะะะ…

ว่าแล้วก็ลงมือเขียนฟังก์ชั่น ผลก็ออกมาอย่างที่เห็นด้านล่างแหล่ะครับ

<?php
/**
* Convert date
*
* @author platoosom
* @email platoosom@hotmail.com
* @created 2008-06-04 11:15
* @modified 2008-06-04 11:15
*
* input : array( ‘begin’=>date/datetime , ‘end’=>date/datetime )
* output : string
*/

if( ! function_exists( ‘compare_date’ ) ){

    function compare_date( $array ){

        if( ! is_array( $array ) ){ return ;}

        if( ( ! array_key_exists( ‘begin’ , $array )) || empty( $array['begin'] )){ return ;}

        if( ( ! array_key_exists( ‘end’ , $array )) || empty( $array['end'] )){ return ;}

        $begin_time = strtotime( $array['begin'] );
        $end_time = strtotime( $array['end'] );

        $amount_time = $end_time – $begin_time ;

        $list = array(
                                ‘day’=>array( ‘วัน’ , ’86400′ ) ,
                                ‘hour’=>array( ‘ชั่วโมง’ , ’3600′ ) ,
                                ‘munite’=>array( ‘นาที’ , ’60′ ) ,
                                ‘second’=>array( ‘วินาที’ , ’1′ )
        )
;

        foreach( $list as $value ):

            $result = floor( $amount_time / $value[1] );
            if( $result > 0 ){ $return[] = $result; $return[] = $value[0]; }

            $amount_time = $amount_time % $value[1];

        endforeach;

        return implode( ‘ ‘ , $return ).‘ ผ่านมา’;

    }
}

?>

วิธีเรียกใช้งาน จะส่ง ปี-เดือน-วัน เข้าไปอย่างเดียว หรือว่าส่ง ปี-เดือน-วัน ชั่วโมง:นาที:วินาที เข้าไปก็ได้ครับผม

<?php

echo compare_date( array( ‘begin’=>’2008-01-31 10:10:10′,’end’=>’2008-02-01 20:11:30′ ) );

echo compare_date( array(‘begin’=>’2008-01-31′,’end’=>’2008-02-01′));

echo compare_date( array(‘begin’=>’2008-01-31′,’end’=>date( ‘Y-m-d H:i:s’ ) ));

?>