วันพุธที่ 17 ธันวาคม พ.ศ. 2551

ทำให้ Apache2 บน Debian Support การแสดงเว็บเป็นภาษาไทย

ลอกเค้ามาอีกที ประยุกต์ตามนี้แหละพี่น้อง
 
ขั้นแรกให้ Debian รู้จักภาษาไทย
 
#dpkg-reconfigure locales
 
เลือก th.TH.TIS-620
แล้ว เซ็ต th ให้เป็นค่า Default
 
 
ต่อไปให้ Apache รู้จักภาษาไทย
#vi /etc/apache2/apache2.conf
 
แก้ตามลำดับดังนี้
 
เพิ่มบรรทัด
AddLanguage th .th
 
ให้ th มีความสำคัญ เพิ่มลงในบรรทัด language priority
LanguagePriority th n ca cs da de el eo es  ....
 
แก้ DefaultCharset เป็น TIS-620 โดยเพิ่มบรรทัด
AddDefaultCharset TIS-620
 
ให้รู้จัก TIS-620 เพิ่มบรรทัด
AddCharset TIS-620    .tis-620    .th
 
ถึงตอนนี้ Apache น่าจะแสดงภาษาไทยได้แล้วล่ะ
 
====================================================================
อันนี้สำหรับคนที่ใช้ PHP Connect Database พวก MySQL และอื่นๆ
เวลาเขียนโปรแกรม ต้องเพิ่มบรรทัดเกี่ยวกับ Charset ลงไป
 
ยกตัวอย่าง mysql
$sql="SELECT * FROM MATCH WHERE REGISTER=1 order by STATE";
$charset="SET NAMES 'tis620'";    *** บรรทัดที่เพิ่ม
mysql_query($charset);                 *** บรรทัดที่เพิ่ม
$rs=mysql_query($sql);
 
====================================================================
ข้อความทั้งหมด ลอกเค้ามาอีกที พอดีไป Search เจอ ทำตามแล้ว Work
 
 

วันพฤหัสบดีที่ 2 ตุลาคม พ.ศ. 2551

Microsoft กับปัญหาเครื่องหมาย # ที่ส่งผลต่อการเปิดไฟล์ CHM

ใครที่มีไฟล์ .chm ซึ่งเป็นไฟล์ html ที่มีการคอมไพล์ และแพ็ครวมกันมาเป็นไฟล์เดียว
เสร็จแล้วเอาไฟล์นี้ไปไว้ใน folder ที่ตั้งชื่ออะไรก็ได้ แต่มีเครื่องหมาย # ปนอยู่ด้วย
เวลาเปิดไฟล์ .chm ขึ้นมา จะทำให้ไม่สามารถ แสดงรายการ Detail ด้านซ้ายได้
มันจะบอกว่า "Page Cannot Be Display"
 
เพราะว่าเวลามันลิงก์มันจะชี้ไปตาม path ที่มันถูกจัดเก็บไว้
เช่นไฟล์ file1.chm เก็บไว้ใน C:\work\C#
 
เวลามันเปิด detail ของไฟล์มันจะลิงก์ไปตามตัวอย่างเช่น
C:\work\c#\file1.chm
 
ที่นี้มันจะทำให้มีเครื่องหมาย # ในชุด url ตามข้างบน ทำให้ IE ซึ่งเป็น
engine ในการเปิดมันเปิดไฟล์นี้ไม่ได้ ซะงั้น
มันน่าเคืองจริงๆ
 
พยายามหาวิธีที่จะเปิดไฟล์นี้ให้ได้ โดยไม่ต้องเปลี่ยนชื่อไฟล์ตั้งนานนนนนนนน
สุดท้ายก็ไปเจอที่เว็บไมโครซอฟท์นั่นแหละ ตามลิงก์ข้างล่าง
 

BUG: No Text or Access Violation Error When Reading a Help File

 
พอเข้าไปอ่านข้างใน วิธีการแก้ไขของมัน
เจือกบอกว่า "บั๊กนี้แก้ได้ ด้วยการเปลี่ยนชื่อ Folder ที่จัดเก็บ ไม่ให้มีเครื่องหมาย # อยู่ด้วย"
 
 
แสรดดดดด นี่ตกลงมรึงจะไม่ยอมแก้ปัญหานี้ใช่ป่ะ ไอ้บิลเกตส์
นี่มันปัญหาของกรูเองใช่ป่ะ ที่เสือกตั้งชื่อ Folder แล้วมีเครื่องหมาย # รวมอยู่ด้วย
 
เวลลลลลลลลลลลลล
 
 

วันอังคารที่ 16 กันยายน พ.ศ. 2551

การใช้งาน C# สั่งให้เรียก โปรแกรมอื่น มาทำงาน

พอเรียกขึ้นมาทำงานแล้ว หยุดรอ จนกระทั่งโปรแกรมนั้นทำงานเสร็จด้วย

 

using System.Diagnostics;

Process myProcess = new Process();
myProcess.StartInfo.FileName = "Ping.exe";
myProcess.StartInfo.Arguments = "202.44.202.2";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
myProcess.WaitForExit();

 

เขียนเอามาเก็บไว้ก่อน เผื่อวันหลังลืม จะได้มาค้นหาง่ายๆ
ใช้เนื้อที่ของ blogger ให้เป็นประโยชน์

อิๆๆ

 

วันศุกร์ที่ 22 สิงหาคม พ.ศ. 2551

วิธีการทำให้ Dreamweaver สามารถ edit และ hilight ไฟล์ .thml หรือไฟล์อื่นๆของ CakePHP ได้

พอดีกำลังศึกษาเรื่องการใช้ FrameWork ของ CakePHP เพื่อช่วยในการพัฒนาระบบ
ไปเห็นบอร์ดนี้ เค้ามีเนื้อหาเกี่ยวกับการ Set Dreamweaver ให้สามารถแก้ไข และ HiLight ไฟล์ที่มีนามสกุลอื่นๆ
ที่ไม่ใช่ .html หรือ .php ใด้ๆ (ซึ่งจริงๆ แล้วไฟล์นั้นมันเป็น html หรือ php )
===============================================================================
 
 
 
หลายคน คงเริ่มติดตั้ง cakePHP ตามที่บอร์ดได้แนะนำเรื่องการติดตั้งไปบ้างแล้ว
ใน folder ของ CakePHP  มี File นามสกุล .ctp ส่วนใหญ่จะอยู่ใน veiw (แต่ไม่เสมอไป) ทำให้การแก้โค๊ด ลำบากทั้งๆ ที่มันเป็น โค๊ดของ html และ php (คือมันไม่แยกสีงะ)
โดยส่วนตัวผมใช้ Adobe Dreamweaver  มาดูว่าทำอย่างไร?

:: เริ่มละ ::

ไปที่
    C:\Program Files\Adobe\Adobe Dreamweaver CS3\configuration\Extensions.txt (ในกรณีที่ใช้ Dream รุ่นใหม่)
    C:\Program Files\Macromedia\Dreamweaver\configuration\Extensions.txt (ในกรณีที่ใช้ Dream รุ่นเก่า)

เปิด file Extensions.txt

1.บรรทัดแรก ช่วงท้ายสุด
         (ยาว มาก ตัดมา แหะๆ )...,VTM,VTML,INC,JAVA,EDML,MASTER:All Documents
   เพิ่ม ,CTP ต่อท้าย MASTER
    ดังนี้   ...,VTM,VTML,INC,JAVA,EDML,MASTER,CTP:All Documents

2. หา บรรทัด PHP,PHP3,PHP4,PHP5,TPL:PHP Files
   เพิ่ม ,CTP ต่อท้าย TPL
    ดังนี้   PHP,PHP3,PHP4,PHP5,TPL,CTP:PHP Files

แล้ว SAVE


ไปที่
    C:\Program Files\Adobe\Adobe Dreamweaver CS3\configuration\DocumentTypes\MMDocumentTypes.xml (ในกรณีที่ใช้ Dream รุ่นใหม่)
    C:\Program Files\Macromedia\Dreamweaver\configuration\DocumentTypes\MMDocumentTypes.xml  (ในกรณีที่ใช้ Dream รุ่นเก่า)

เปิด file MMDocumentTypes.xml


1. หา winfileextension="php,php3,php4,php5" macfileextension="php,php3,php4,php5"
    แล้ว เพิ่ม ctp ต่อท้าย php5 ดังนี้
    winfileextension="php,php3,php4,php5,ctp" macfileextension="php,php3,php4,php5,ctp"

แล้ว SAVE


แค่นี้ ท่านก็จะใช้ Dreamweaver มาช่วยในการพัฒนา CakePHP ได้สมใจอยาก .....
 
 
 
 
 

วันพฤหัสบดีที่ 21 สิงหาคม พ.ศ. 2551

PHP ถ้าจะค้นหาข้อความ และทำให้มันเป็นตัวหนา โดยทำให้ Case ของตัวอักษรเหมือนเดิม ทำยังไง?

มีคนมาถามความเห็นนี้ใน pantip developer เห็นแล้วก็น่าคิดเหมือนกัน
ปกติใช้แต่ str_ireplace หรือ str_replace
 
เช่น
 
$a = 'dog';
str_ireplace($a, '<b>' . $a . '</b>', '123dog1234Dog12345DOG')
 
แต่มันตอบโจทย์ไม่ได้ เพราะมันจะได้ผลลัพธ์เป็น
 
        123dog1234dog12345dog
 
ซึ่งผลลัพธ์ที่ต้องการจริงๆ คือแบบนี้
 
        123dog1234Dog12345DOG
 
 
มีคนพยายามแก้ปัญหาด้วยการเขียนโค้ดแบบนี้
 
<?php
$s = '1234dog12345Dog123456DOG';
$sx = strlen($s);
$d = 'dog';
$dx = strlen($d);
while ($p < $sx)
{
$a = stripos($s, $d, $p);
$b .= substr($s, $p, $a - $p);
$b .= '<b>' . substr($s, $a, $dx) . '</b>';
$p = $a + $dx;
}
echo $b;
?>
 
แต่ดูไปมันอาจจะเวิร์ก แต่ก็ยังไม่ใช่คำตอบที่ดี สุดท้ายมีคนชื่อ SvZ มาให้วิธีการดังนี้
 
preg_replace('~(test)~i', '<b>$1</b>', 'ABCTestSWZFDzasTeST');
 
ซึ่งวิธีนี้ สั้นๆ บรรทัดเดียว และทำงานถูกต้อง
อ่านดูแล้วเข้าท่าดี ปัญหาเดียวกัน แต่วิธีการแก้ไขปัญหาไม่เหมือนกัน
ขึ้นอยู่กับว่าใครรู้จักเครื่องมือในการทำงานของตัวเอง มากกว่ากัน
ยิ่งเรารู้จักเครื่องมือในการทำงานของตัวเองมากขึ้นเท่าไหร่ เราจะมีวิธีคิดในการแก้ไขปัญหามากขึ้นเท่านั้น
 
นี่คือข้อแตกต่างระหว่างคำว่า "ทำได้" กับ "ทำเป็น"
 
 
 
 
อรุณสวัสดิ์ครับพี่น้องชาวไทย
 

วันพุธที่ 30 เมษายน พ.ศ. 2551

การติดตั้ง PostgreSQL และ phppgadmin

ติดตั้ง Postgresql
# aptitude install postgresql-8.1



แก้ไขให้เรียกใช้งานจากลูกข่ายใด ๆ ก็ได้
# vi /etc/postgresql/8.1/main/postgresql.conf

listen_addresses '*'


ปรับตั้งสิทธิ์การเข้าใช้งาน
# vi /etc/postgresql/8.1/main/pg_hba.conf

#local all all ident sameuser
local all all md5
host all all 192.168.0.0/16 md5

รีสตาร์ทใหม่อีกครั้ง
# /etc/init.d/postgresql-8.1 restart


สร้าง User ของ PostgreSql สำหรับใช้งานใน phppgadmin
# su -l postgres -c "createuser -s -P admin"


ติดตั้ง apache2 ตรงนี้ต้องใช้คำสั่ง apt-get เพราะถ้าใช้ aptitude มันจะติดตั้ง postgresql 7.4 มาให้
ซึ่งเราต้องการใช้เวอร์ชั่น 8.1 หรือล่าสุดกว่านั้น
# apt-get install apache2 php5 php5-pgsql phppgadmin

ปรับตั้งให้ phppgadmin ทำงานกับ apache2 ได้
# dpkg-reconfigure phppgadmin

แก้ให้เครื่องอื่นๆ สามารถเรียกเข้ามาใช้งานได้
# vi /etc/phppgadmin/apache.conf
# deny from all
allow from 127.0.0.0/255.0.0.0
allow from all


เริ่ม apache2 ใหม่
# /etc/init.d/apache2 restart