จัดการภาษาไทย (UTF-8) ด้วย Multibyte String Functions

UTF-8 ใช้พื้นที่ 3 ไบต์ ในการเก็บข้อมูลภาษาไทย 1 อักขระ  ดังนั้นจึงไม่สามารถใช้ฟังก์ชัน เช่น strlen() และ substr() กับภาษาไทยที่เป็น UTF-8 ได้ เช่น $string = “ที่นี่abcd1234”; echo ‘strlen() return: ‘.strlen($string); ผลลัพธ์ที่ได้คือ strlen() return: 26 ตัวเลข 26 มาจาก ภาษาไทย 6×3 = 18, ภาษาอังกฤษ 4 และตัวเลข 4 ตัว ดังนั้นเพื่อให้นับจำนวนตัวอักขระได้อย่างถูกต้องจะต้องใช้ฟังก์ชัน multibyte  string  เช่น จากตัวอย่างข้างต้น จะต้องใช้ฟังก์ชัน mb_strlen() แทน strlen()

กลับไปหน้าที่แล้ว

วิธีการที่จะทำให้ script กลับไปหน้าที่แล้วหลังจากทำงานเสร็จคือใช้ $_SERVER[‘HTTP_REFERER’] ครับ <?php // Somethint here // Redirect back to previous page $previous = $_SERVER[‘HTTP_REFERER’]; header(“location:$previous”); exit; ?>

ภาษาไทยกับ PHP และ MySQL

UTF-8 เป็นคำตอบสุดท้่าย เพื่อให้การใช้ภาษาไทยกับ PHP และ MySQL ใช้งานได้อย่างสมบูรณ์ การสร้างฐานข้อมูลใน MySQL ให้ตั้งค่าดังต่อไปนี้ Default CHARSET = utf8 COLLATE = utf8_unicode_ci ตัวอย่างเช่น CREATE TABLE brand ( pk_brand int(5) NOT NULL auto_increment, brand varchar(250) collate utf8_unicode_ci NOT NULL, brand_logo varchar(200) collate utf8_unicode_ci NOT NULL, website varchar(200) collate utf8_unicode_ci default NULL, PRIMARY KEY  (pk_brand) ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; แล้วทำไมจึงไม่ใช้ utf8_general_ci?  … อ่านต่อ …

วิธีการเรียก Smarty library แบบง่าย

ผมบังเิอิญไปเจอวิธีการที่จะเรียก Smarty library ที่น่าสนใจ  สะดวกมากเวลาที่กำลังพัฒนาโปรแกรม เพราะไม่ต้องระบุ path เลย แต่เมื่อพัฒนาโปรแกรมเสร็จแล้วก็ควรแก้ไข path ให้ถูกต้องครับ <?php // SMARTY Section define(‘SMARTY_DIR’,str_replace(“\”,”/”,getcwd()).’/Smarty-2.6.19/libs/’); require_once(SMARTY_DIR . ‘Smarty.class.php’); $smarty = new Smarty(); $smarty->template_dir = str_replace(“\”,”/”,getcwd()).’/templates/’; $smarty->compile_dir  = str_replace(“\”,”/”,getcwd()).’/templates_c/’; $smarty->config_dir   = str_replace(“\”,”/”,getcwd()).’/configs/’; $smarty->cache_dir    = str_replace(“\”,”/”,getcwd()).’/cache/’; //** un-comment the following line to show the debug console //$smarty->debugging = true; ?>

PEAR::Auth package

PEAR  มีแพ็คเกจที่ชื่อว่า  Auth  ซึ่งช่วยอำนวยความสะดวกในการสร้างระบบตรวจสอบสิทธิ์ผู้ใช้ (authentication) โดยช่วยอำนวยความสะดวกตั้งแต่ การเพิ่มและลบผู้ใช้ การล็อกอิน การนำข้อมูลผู้ใช้มาแสดง การกำหนดระยะเวลาการล็อกอินและ Idle timeout และการตรวจสอบสิทธิ์ผู้ใช้งาน  ทำให้ช่วยลดเวลาในการพัฒนาโปรแกรมลงได้มาก  สิ่งที่สำคัญคือ Auth รองรับระบบจัดเก็บข้อมูลของผู้ใช้หลากหลายประเภท ได้แก่ All databases supported by the PEAR database layer All databases supported by the MDB database layer All databases supported by the MDB2 database layer Plaintext files LDAP servers POP3 servers IMAP servers vpopmail accounts (Using either PECL … อ่านต่อ …

PHP mod_rewrite and .htaccess tutorials

ผมเคยใช้งาน mod_rewrite กับ .htaccess นานมาแล้ว จนลืมไปหมด วันนี้ก็บังเอิญไปเจอเว็บที่น่าสนในเกี่ยวกับเรื่องนี้ครับ Widexl.com – Module Rewrite URL Rewriting Guide Corz.org more .htaccess tips and tricks.. Apache Mod_Rewrite URL Rewriting Engine documentation  URL Rewriting Guide

PHP : Parsing Email Adresses in PHP

นี่เป็น PHP script ที่ใช้สำหรับตรวจสอบรูปแบบของอีเมลที่ผู้ใช้ป้อนผ่านฟอร์ม ว่าต้องเป็นไปตาม RFC822 http://www.iamcal.com/publish/articles/php/parsing_email/ เขียนอธิบายอย่างละเอียดครับ ลองแวะเข้าไปอ่านดู

ฟังก์ชันอะไรบ้างของ php ที่ควรระงับการใช้งาน

คำแนะนำจาก http://www.netadmintools.com/art411.html disable_functions = “dl, phpinfo, shell_exec, passthru, exec, popen, system, proc_get_status,proc_nice,proc_open,proc_terminate,proc_close” ส่วนเว็บโฮสติ้งที่ผมใช้อยู่เค้า ยกเลิกฟังก์ชันต่อไปนี้ disable_functions = “system, shell_exec, proc_terminate, proc_open, proc_nice, proc_getstatus, proc_close, passthru, exec, escapeshellcmd, escapeshellarg” แก้ใน php.ini (เลือกเอาตามใจชอบครับ)

How to Compile suPHP+Apache2+PHP

คัดลอกจาก http://planetmy.com/blog/?p=67 Finally I’m manage to make my PHP 5.1.2 compiled with suPHP successful today suPHP is a tool for executing PHP scripts with the permissions of their owners. It consists of an Apache module (mod_suphp) and a setuid root binary (suphp) that is called by the Apache module to change the uid of the … อ่านต่อ …