self กับ $this ต่างกันตรงที่ $this จะหมายถึง object ที่ใช้อยู่ตอนนั้น แต่ self จะหมายถึง class ที่ใช้อยู่ตอนนั้น หรือ ก็คือ $this จะใช้กับอะไรก็ตามที่ไม่ใช่ static แต่ self กับอะไรก็ตามที่เป็น static นั้นเอง เช่น class okito { public static $foo = “foo : “; var $bar = “bar : “; function __construct() { $this->bar .= “Hello<br />”; self::$foo .= “Hi<br />”; } public static function [...]
Archive for the ‘php’ Category
วิธีลง MemCached บน Mac OS X ด้วย Mac Port
มาจดไว้กันลืมเหอๆ ก่อนอื่นก็ต้องมี Mac Port กันก่อนนะ ตรงนี้ข้ามไปเลยแล้วกัน ถ้ามีอยู่แล้วก็สั่ง sudo /opt/local/bin/port install memcached sudo /opt/local/bin/port install php5-memcache จากน้ันเข้าไป check ดูว่าได้ enable Memcache ใน php แล้วหรือยัง sudo vi /opt/local/var/db/php5/memcache.ini ถ้าเป็นตามด้านล่างก็ใช้ได้แล้ว ถ้าไม่ใส่ก็ใส่เพิ่มเข้าไป extension=memcache.so แต่ถ้าใครไม่ได้ลง php ด้วย Mac Port หรือไม่เจอ file ก็เข้าไปแก้ใน php.ini เอาเลย จากนั้นก็สั่ง start MemCached sudo /opt/local/bin/memcached -d -u nobody ท้ายสุด restart apache อีกทีเป็นอันเรียบร้อย sudo /opt/local/apache2/bin/apachectl restart
ปัญหา strlen() ของ php กับ utf8
วันก่อนเจอปัญหา php ให้ค่า string length มาผิด ไม่ตรงกับที่นับด้วย javascript หลังจากนั่งหาข้อมูลอยู่พักนึงก็เลยรู้ว่าสาเหตุเกิดจาก ตัวอักษรแต่ละตัวของ utf8 นั้นใช้ byte ในการเก็บมากกว่า 1 byte ทำให้ strlen() อ่านผิด วิธีแก้นั้นก็ง่ายนิดเดียวด้วยการใช้ function utf8_decode() ก่อนเข้า strlen() ก็เป็นอันเรียบร้อย $len = strlen(utf8_decode($string));
วิธีการสร้าง QR-Code
ช่วงนี้ QR-Code กำลังมาแรง ก็ลองสร้าง QR-Code กับเค้าดูบ้าง ค้นไปค้นมาพบว่า Google มี API ให้ใช้ คือ Google Chart Tools ซึ่งมันสามารถสร้าง QR-Code ได้ รายละเอียดเข้าไปอ่านที่ http://code.google.com/apis/chart/docs/gallery/qr_codes.html นะ ตัวอย่าง Code สำหรับ สร้าง QR-Code <?php function google_qr($url,$size =’150′,$EC_level=’L’,$margin=’0′) { $url = urlencode($url); echo ‘<img src=”http://chart.apis.google.com/chart?chs=’.$size.’x’.$size.’&cht=qr&chld=’.$EC_level.’|’.$margin.’&chl=’.$url.’” alt=”QR code” width=”‘.$size.’” height=”‘.$size.’”/>’; } google_qr(‘http://www.okito.com’, 216);
php mysql_connect() errors
วันนี้มาเขียน blog ประจานตัวเองหน่อย เนื่องด้วยวันก่อนเปิด wordpress บน local แล้วพบว่ามัน connect database ไม่ได้ เกิดอะไรขึ้นเนี่ย!?! step แรกที่คิดได้คือไม่ได้รัน mysql แน่ๆ แต่พอ ps ดูก็มีนี่หว่า! เอาหละสิมันเป็นอะไรกัน ก็เลยลองใช้ cocoaMysql connect ดูมันก็ใช้ได้ปกติ งง เป็นไก่ตาแตกเลยทีนี้ หลังทิ้งมันไว้ 1 วันผ่านไปเนื่องจากไม่มีเวลาดูต่อ(จริงๆ ขึ้เกียจแหละ 555+) วันนี้เลยเขียน script connect database ง่ายๆ ตามนี้ $tmp = @mysql_connect($dbhost, $dbuser, $dbpassword, true); if(!$tmp) { die(mysql_error()); } ได้ผลออกมาเป็น No such file or directory เลยถึงบางอ้อ ที่แท้มันหา [...]
Fix a warning appearing in phpinfo()
พอดีวันนี้ลองลง openx ใน local ปรากฎว่ามัน ขึ้น warning function date-default-timezone-get พอเข้าไปดูใน php.net มันบอกว่าต้องใช้ PHP version 5.1.0 ขึ้นไป ก็เลยตามไปดู phpinfo ดูปรากฎว่า ก็ใช้ 5.3 อยู่แล้ว แต่พอเลื่อนมาดูตรง date ก็เจอ Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used [...]