Posts Tagged ‘PHP’
การใช้งาน SyntaxHighlighter
วันก่อนไปเจอในบล็อกของใครแล้วก็ไม่รู้ เขาแสดงโค้ด php บนหน้าเว็บด้วยความสวยงาม หันมาดูของเรา ทำม้ายทำไม มันถึงไม่มีสีสันอย่างเขาบ้าง ด้วยความที่เห็นคนอื่นมี ตัวเองก็อยากมีบ้าง เลยใช้บริการเฮียกู ค้นหา และแล้วพรหมลิขิต บันดาล ชักพา ให้ไปเจอกับโค้ดตัวหนึ่งที่เขาเขียนไว้แจกฟรี นามกรว่า SyntaxHighlighter1.1.5
การต่อข้อความอีกรูปแบบหนึ่ง
การต่อข้อความ
ข้าพเจ้าคิดว่าทุกท่านที่เขียน 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; ?>
ต่อเนื่องจาก ฟังก์ชั่นสำหรับแปลง ตัวเลขเดือน เป็นตัวหนังสือ
จากบทความก่อนหน้านี้ (ฟังชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ) จะเห็นว่า ผมใช้เลขดัชนีของ Array เป็นตัวเลือกข้อมูลที่จะส่งออกจาก function
ทีนี้มันมีปัญหาอยู่ว่า เลขดัชนีของ Array จะเริ่มต้นจาก 0 ขึ้นไปเรื่อยๆ แล้วถ้า เรามีตัวเลขติดลบที่ต้องการจะแปลง เราจะใช้ function
ในลักษณะนี้ได้หรือไม่ เช่นในฐานข้อมูลเราเก็บสถานะใบสั่งซื้อ โดยเราสมมติตัวเลขว่า -2=ใบสั่งซื้อไม่สมบูรณ์ , -1=ยกเลิกใบสั่งซื้อ ,
0=รอการยืนยันจากผู้ซื้อ , 1=กำลังส่งของ , 2=สินค้าถึงมือผู้รับแล้ว เป็นต้น
เมื่อตัวเลขเริ่มจาก -2 จะทำไงดี
การใช้งาน UTF-8 แบบสมบูรณ์
เดี๋ยวนี้เว็บไทยโดยส่วนใหญ่เริ่มเปลี่ยนการใช้งานจาก 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
ฟังก์ชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ
เคยมีสักครั้งมั้ย ที่คุณจะต้องเขียนฟังชั่นเพื่อแปลง จากตัวเลขประจำเดือน เป็นตัวหนังสือ เช่นแปลงจาก 1 เป็น มกราคม แล้วคุณเขียนยังไง?
วันนี้ผมมีวิธีการเขียนฟังชั่นแปลง ตัวเลขเดือน เป็น ตัวหนังสือ อย่างง่ายๆ และสั้นๆ โดยใช้ Array เข้ามาช่วย ดูนะครับ
<?php function func_conv_month( $input ){ $arr_month = array( “” , “มกราคม” , “กุมภาพันธ์” , “มีนาคม” , “เมษายน” , “พฤษภาคม” , “มิถุนายน” , “กรกฎาคม” ,”สิงหาคม” , “กันยายน” , “ตุลาคม” , “พฤศจิกายน” , “ธันวาคม” ) ; return $arr_month[ $input ] ; } ?>
เวลาเรียกใช้ ก็ส่งตัวเลขเดือน เข้าไปในฟังชั่น ฟังชั่นก็จะคืนค่า เดือนเป็นตัวหนังสือกลับมา
<?php echo func_conv_month( 2 ) ; // กุมภาพันธ์ ?>
ง่ายมั้ย!!!
Ternary operator
เขามีนามมังกรว่า 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
แจกฟังก์ชั่นแปลง ปี-เดือน-วัน เป็น ผ่านมาแล้ว กี่วัน กี่ชั่วโมง กี่นาที กี่วินาที
พอดีวันนี้เขียนโปรแกรม ๆหนึ่ง ที่ต้องแสดง วันที่สร้าง และวันที่อัปเดต รายการ ซึ่งผมเก็บลงฐานข้อมูลในรูปแบบ 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’ ) ));
?>
Log In
Categories
- 1 week 1 Source (2)
- AppServ (10)
- Array (2)
- Codeigniter (1)
- Computer (7)
- CSS (9)
- Dreamweaver (7)
- Firefox (7)
- Form (2)
- FPDF (15)
- General (31)
- HTML (2)
- Javascript (6)
- jQuery (86)
- Mac (10)
- MySQL (15)
- Navicat (9)
- Other (58)
- PHP (97)
- PHP-function (12)
- Program (8)
- SMF (15)
- SQL (20)
- Theme (1)
- TinyMCE (7)
- webservice (1)
- Wordpress (18)
- คอมฯ ทั่วไป (6)
-
Recent Posts
- akismet ปลักอินกรองแสปมของเวิร์ดเพรส
- WP-CMS Post Control ปลักอินสำหรับซ่อนสิ่งที่ไม่ต้องการในเวิร์ดเพรส
- wordpress flickr manager ปลักอินสำหรับอัปโหลดภาพเก็บที่ flickr
- picpick โปรแกรมที่เว็บโปรแกรมเมอร์ต้องมีไว้ติดเครื่อง
- ขอความเห็น
- todoist โปรแกรมจดรายการสิ่งที่ต้องทำสุดเจ๋ง
- wordpress google xml sitemap หนึ่งในปลักอินที่ท่านต้องติดตั้ง
- แนะนำเว็บให้ความรู้การเขียนโปรแกรมโคตะระเด็ด
- โปรแกรมจดรายการสิ่งที่จะต้องทำ
- แจกภาพปุ่มเอาไปตกแต่งเว็บ
- วิธีสร้างเว็บให้ติดอันดับหนึ่ง
- wordpress ปิงผู้ปิดทองหลังพระ
- วิธีเปิด notepad อย่างรวดเร็ว
- วิธีดึงข้อมูลออกจากฐานข้อมูลของเวิร์ดเพรส แบบสุ่ม
- หารายละเอียดโดเมน
Tags
AppServ Array Back to the basic bug calendar CAPTCHA chart CSS Dreamveawer eclipse error firebug Firefox firefox plugin FPDF General google helios HTML icons Javascript jQuery jquery plugin jquery slide jQuery tutorial jQuery UI Mac MySQL Other pdt PHP phpmailer programming slide slide show SMF smf themes smf themes download smf themes free smf themes thai SQL sql function tooltip Wordpress wordpress plugin
