����������� ผมเขียน PHP มาหลายปีพึ่งมามีปัญหากับ function date ที่แสดงเวลาไม่ตรงเพราะพึ่งจะหันมาเขียนบน PHP5 (ลง Appserv ตัวใหม่ ) หลังจากที่กำลังเขียนโปรแกรมเกี่ยวกับเวลาสังเกตว่าเวลามันเร็วไป 1 ชม.
����������� เอาหล่ะสิเขียน PHP มาตั้งนานพึ่งจะเจอปัญหาก็เพราะว่าใน PHP 5 มีการ config เกี่ยวกับ timezone เอาไว้ ลองดูที่ php.ini จะพบ
�
[Date]; Defines the default timezone used by the date functions
;date.timezone =
�ตามตัวอย่างถ้าไม่ได้แก้อะไรเวลาจะบวกไปอีก 1 ชม. แล้วถ้าต้องการแก้ให้ถูกต้องหล่ะไม่ยากครับ
[Date]; Defines the default timezone used by the date functions
date.timezone = "Asia/Bangkok"
�แก้ตามนี้แล้ว restart webserver ใหม่ก็ใช้งานได้แล้ว ทดสอบตาม code นี้
< ?
echo date('l jS \of F Y h:i:s A');
?>
�ผลที่ได้ประมาณนี้
Friday 26th of September 2008 12:32:25 AM
�ส่วนสำหรับใครที่ไม่สามารถแก้ php.ini โดยเฉพาะที่เช่า host เค้าอยู่ก็ลองใช้�
< ?
//�set�the�default�timezone�to�use.�Available�since�PHP�5.1
date_default_timezone_set('Asia/Bangkok');
echo date('l jS \of F Y h:i:s A');
?>
เท่านี้ก็จะสามารถใช้ Function ที่เกี่ยวกับเวลาได้อย่างไม่มีปัญหาแล้วครับ
ปล. date_default_timezone_set มีใน PHP 5.1 [1] ขึ้นไปครับ
�อ้างอิง
[1] http://th2.php.net/manual/en/function.date-default-timezone-set.php
����������� หลังจากเป็นที่ฮือหากับการเปิดตัวของ browser เจ้าใหม่แต่ชื่อไม่ใหม่อย่าง Google Chrome ของค่ายยักษ์ใหญ่อย่าง Google ที่ทำอะไรก็รุ่งไปหมด ทำให้ตลาดของ browser ตื่นตัวขึ้นอีกครั้งซึ่งเรื่องนั้นเราไม่พูดถึงเราจะมาพูดถึงเรื่องที่เราถนัดดีกว่านั้นก็คือเรื่องของการเขียนโปรแกรม
����������� การเปิดตัวของ Google Chrome ทำให้วงการ Software ต้องมีการปรับปรุงไม่มากก็น้อยซึ่งที่เห็นได้ชัดก็คือการปรับให้ Software สามารถรันบน Google Chrome ได้ ซึ่งปัญหาที่เห็นได้ชัดที่สุดก็คือบรรดา Rich Text Editor ทั้งหลายต่างเอ๋อไปตามๆกันเมื่อรันผ่าน Google Chrome เพราะไม่รู้จักว่ามันเป็นใครก็ที่ไม่รู้จักก็เพราะว่าตัว USER_AGENT ของ Google Chrome ทะลึ่งมีหน้าตาแปลกๆ�
�Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13
�แล้วอย่างนี้ที่เขียนกันเอาไว้ก็ไม่รู้ว่าจะเข้าเงื่อนไขไหนเพราะมันมีทั้ง Mozilla , Gecko , Chrome , Safari งงเลย
����������� ล่าสุดในวันที่ผมนั่งเขียน (12 กย. 51) Rich Text Editor เจ้าใหญ่ๆพากันปรับให้สามารถใช้งานบน Google Chrome แล้วอย่าง Spaw, TinyMCE ( Open Source หลายตัวใช้อยู่เช่น Moodle, Wordpress) จริงๆแล้ว Rich Text Editor เหล่านี้จะใช้ JavaScript ในการ detect browser ซึ่งถ้าอธิบายก็คงต้องไปนั่งไล่ JavaScript อีกยาว เอาเป็นว่าเอาตัวอย่างที่เป็น PHP ไปลองเล่นกันก็แล้วกัน
function userAgent($minor=false){
$agents = array('MSIE'=>'/MSIE ([0-9]\.[0-9])/', 'Firefox'=>'/Firefox\/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/', 'Opera'=>'/Opera\/([0-9]*\.[0-9])/','Safari'=>'/Version\/([0-9]*\.[0-9]*\.?[0-9]*)/','Chrome'=>'/Chrome\/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/');
foreach($agents as $agent=>$pattern){
preg_match($pattern,$_SERVER['HTTP_USER_AGENT'],$match);
if(isset($match[1])){
if($minor){
return $agent.' '.$match[1];
}
else
{
return $agent.' '.floor($match[1]);
}
}
}
return 'Unknown browser';
}
echo userAgent(true) ;
ทดสอบ: demo
�

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?) in C:\phpmailer\class.smtp.php on line 124
Mailer Error: SMTP Error: Could not connect to SMTP host.
หากเจอปัญหาแบบนี้วิธีแก้ก็ไปที่ php.ini
แก้ ;extension=php_openssl.dll
เป็น extension=php_openssl.dll
จากนั้น restart webserver ก็ใช้งานได้แล้ว