วันศุกร์ที่ 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');
 
ซึ่งวิธีนี้ สั้นๆ บรรทัดเดียว และทำงานถูกต้อง
อ่านดูแล้วเข้าท่าดี ปัญหาเดียวกัน แต่วิธีการแก้ไขปัญหาไม่เหมือนกัน
ขึ้นอยู่กับว่าใครรู้จักเครื่องมือในการทำงานของตัวเอง มากกว่ากัน
ยิ่งเรารู้จักเครื่องมือในการทำงานของตัวเองมากขึ้นเท่าไหร่ เราจะมีวิธีคิดในการแก้ไขปัญหามากขึ้นเท่านั้น
 
นี่คือข้อแตกต่างระหว่างคำว่า "ทำได้" กับ "ทำเป็น"
 
 
 
 
อรุณสวัสดิ์ครับพี่น้องชาวไทย