Friday, November 9, 2012

ใส่ลูกน้ำ (Comma) ให้กับข้อมูลตัวเลขด้วย JavaScript

การแสดงผลข้อมูลตัวเลข ในกรณีที่ต้องทำการคำนวณด้วย และจะต้องมีการจัดรูปแบบของตัวเลขให้ดูง่ายจะต้องใส่ลูกน้ำ , คั่นระหว่างหลักพัน หลักล้าน หลักพันล้าน ฯลฯ หรืออะไรก็แล้วแต่ เรามีฟังก์ชั่นที่จะสามารถจัดรูปแบบตัวเลขนี้โดย JavaScript ดังนี้ครับ
function addCommas(nStr){
  nStr += '';
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
   x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  return x1 + x2;
}
จากตัวอย่าง จะเป็นการแยกทศนิยมออกมาก่อน จากนั้นให้ Regulat Expression โดยนับจากท้ายจำนวน 3 หลักแล้วใส่ลูกน้ำเข้าไป ง่ายดายมาก ๆ

Tuesday, November 6, 2012

ดึงรูปโพรไฟล์จาก Instagram ด้วย PHP ง่ายนิดเดียว

Instagram เป็น Social Media ที่ได้รับความนิยมอักอันหนึ่ง ซึ่งเหล่าบรรดาไฮโซไฮซ้อ ดารา นักแสดง เซเล็บ(ตีนหมา) รวมถึงประชาชีทั้งหลายที่มีโทรศัพท์หรือแท็ปเล็ตที่ใช้ระบบปฏิบัติการ Android และ iOS ก็นิยมเล่นกัน โดยเว็บไซต์ฮิต ๆ ในไทย ไม่ว่าจะเป็น kapook , manager , mthai และอะไรต่อมิอะไรมากมาย เรามาดูวิธีการดึงรูปโพรไฟล์จาก ig แบบง่าย ๆ กัน ดังนี้
function getIgProfilePic($iguser) {
 $file_str = file_get_contents('http://followgram.me/' . $iguser);
 $html = new DOMDocument();
 $html->loadHTML($file_str);
 $img = $html->getElementsByTagName('img');

 return $img->item(1)->getAttribute('src');
}
ฟังก์ชั่นนี้จะใช้วีธีการไปดูดโค้ด HTML จากเว็บ followgram.me มาแล้วนำมาเรียบเรียงด้วยคลาส DOMDocument จากนั้นก็ return ค่า attribute src ของภาพที่ 2 (index ที่ 1) ออกมานั่นเอง ง่ายป่ะ อิอิ

Thursday, November 1, 2012

กำจัด BBCode ในข้อมูล PHP

เราสามารถจำกัดแท็ก HTML ที่อยู่ปะปนกับ String ในข้อมูล PHP ได้ โดยการใช้งานคำสั่ง strip_tags แต่ถ้าเป็น BBCode ที่นิยมใช้กันในเว็บบอร์ดสำเร็จรูปต่าง ๆ ทั้งหลายนั้น เราจะต้องเขียนฟังก์ชั่นขึ้นมาเพื่อกำจัด BBcode เหล่านั้น ซึ่งทาง codeinw เราก็มีฟังก์ชั่นสำหรับการนี้ให้ทุกท่านได้นำไปใช้ ดังนี้ครับ
function stripBBCode($text_to_search) {
   $pattern = '|[[\/\!]*?[^\[\]]*?]|si';
   $replace = '';
   return preg_replace($pattern, $replace, $text_to_search);
}
จากฟัง์ชั่นนี้เป็นการใช้ Regular Expression ในการตรวจสอบจุดเริ่มต้นและจุดสิ้นสุดของ BBCode ที่จะเริ่มต้นด้วย [ และสิ้นสุดด้วย ] โดยจะแทนที่ส่วนของ BBcode ด้วย String ว่าง ๆ นั่นเองครับ

Monday, October 29, 2012

PHP : Oracle ORA-06550 Error แก้อย่างไรดี ???

ปัญหาข้อผิดพลาดของการเขียนโค้ด PHP Oracle นี้คือ ตอนเขียน ociparse ในส่วนที่เป็นคำสั่ง SQL ที่ CALL Procedure นั้นจะต้องไม่ขึ้นบรรทัดใหม่ครับ

Warning: ociexecute() [function.ociexecute]: ORA-06550: บรรทัด 1 คอลัมน์ 206: PLS-00103: พบสัญลักษณ์ "" เมื่อต้องการค่าต่อไปนี้: begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe สัญลักษณ์ "" ไม่ได้ประมวลผล in C:\AppServ\www\testtab\_get_payment_detail.php on line 25
ตัวอย่างคำสั่ง
$stmt = ociparse($conn,"begin tbb_management_pck.get_payment_detail(:in_receipt_id,:out_account_num,:out_invoice_num,:out_vat_mny,:out_inc_vat_mny,:out_wt_mny,:out_total_mny,:out_cursor1,:out_cursor2,:out_status,:out_exception); 
end;");
เมื่อแก้ไขแล้วโปรแกรมก็จะสามารถทำงานตามปกติ

Wednesday, October 3, 2012

วิธีการเซ็ต Virtual Host ใน Apache ที่ติดตั้งด้วย AppServ

1. แก้ไขไฟล์ C:\AppServ\Apache2.2\conf\httpd.conf
...
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
เอาเครื่องหมาย # หน้า Include conf/extra/httpd-vhosts.conf

2. เพิ่มไดเร็คทีฟ Directory ลงไปดังนี้
...
<Directory "D:/wpdev">
    Order allow,deny
    Allow from all
</Directory>
เสร็จแล้ว save ไฟล์ซะ

3. แก้ไขไฟล์ C:\AppServ\Apache2.2\conf\extra\httpd-vhosts.conf

เพิ่มข้อมูลลงไปดังนี้
...
<VirtualHost *:80>
    DocumentRoot  "D:/wpdev"
    ServerName wpdev
</VirtualHost>
เสร็จแล้วบันทึกไฟล์

4. แก้ไขไฟล์ C:\Windows\System32\drivers\etc\hosts (ไม่มีนามสกุลไฟล์) ดังนี้
...
127.0.0.1          wpdev
เสร็จแล้วบันทึกไฟล์

5. Restart Apache หรือถ้า Restart เครื่องไปเลย ฮิฮิ