Monday, December 24, 2012

Running php 5.x on windows using tomcat 4.x or 5.x

Running php 5.x on windows using tomcat 4.x or 5.x

By Angsuman Chakraborty, Gaea News Network
Saturday, December 11, 2004

What it solves:
  1. Using php 5.x on Tomcat 4.x or 5.x
  2. Enabling php only in one web application, instead of globally.

The simplest possible configuration is described. The descriptions are terse assuming your intelligence.
We will assume php will be installed in c:\ drive. Substitute with drive letter of your choice.
Instructions
  1. Download latest php 5.x zip file.
    I used http://www.php.net/get/php-5.0.2-Win32.zip/from/a/mirror .
  2. Download latest Collection of PECL modules. I used http://www.php.net/get/pecl-5.0.2-Win32.zip/from/a/mirror .
  3. Unzip php 5.x zip file anywhere, normally c:\php
  4. Copy php.ini-dist, in c:\php, as php.ini
  5. Uncomment the line (remove semi-colon at the beginning) in php.ini:
    ;extension=php_java.dll
  6. Extract php5servlet.dll from pecl zip file to c:\php (Uncheck "Use Folder Names" in WinZip).
    Ensure that the file is actually present in c:\php
  7. Install Tomcat and create a directory under webapps. Lets say it is named fun.
  8. Create WEB-INF directory under fun
  9. Create lib directory under WEB-INF
  10. Create web.xml under WEB-INF with the following contents:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC
      "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <servlet>
     <servlet-name>php</servlet-name>
      <servlet-class>net.php.servlet</servlet-class>
     </servlet>
     <servlet>
      <servlet-name>php-formatter</servlet-name>
      <servlet-class>net.php.formatter</servlet-class>
     </servlet>
     <servlet-mapping>
      <servlet-name>php</servlet-name>
      <url-pattern>*.php</url-pattern>
     </servlet-mapping>
    
     <servlet-mapping>
      <servlet-name>php-formatter</servlet-name>
      <url-pattern>*.phps</url-pattern>
     </servlet-mapping>
    </web-app>
       
  11. Extract php5srvlt.jar and extract/unjar (jar xvf …) it under c:\
  12. Modify both the files reflect.properties and servlet.properties to change the line library=phpsrvlt to library=php5servlet and save them. This indicates the file name of the dll file which is loaded by the Java application to serve the requests. In my version the name of the dll was php5servlet.dll. Your mileage may vary. This has no connection with the name of the jar file which can be anything.
  13. Re-create the jar file
  14. Copy the jar file to WEB-INF\lib directory created earlier
  15. Add c:\php to your System or User Path in Windows enironment (Hint: Right-click and select Properties from My Computer)
  16. Create a file test.php under fun with the following code:
    <?php phpinfo(); ?>
  17. Start Tomcat (Go to [Tomcat installation directory]\bin and type Tomcat).
  18. Open your browser and go to http://localhost:8080/fun/test.php
  19. Ensure that there are no errors displayed. Instead you get an informative screen with php version information and whole lot of details
Let me know if this document is helpful to you.
Update: Made minor revision to highlight some key elements.
Solutions to common problems by users:
Whoever is getting this error “java.lang.UnsatisfiedLinkError: no php5servlet in java.library.path”. Please check the two properties file, whether there are any blank spaces. I was stuck in this problem for 2 days. There should be only one line, and no blank spaces. Check it now!!!. This is where the problem is lying.
–Arundhati
The versions of php and pecl must be the same.
–Mirek Mocek
You might want to add a reboot step at the end of your instructions. It would eliminate a lot of the problems with the unsatisfied link errors.
– Chuck Rosendahl
Note:
If you find this tutorial useful, please consider donating and enjoy the pleasure of giving.

Sunday, December 23, 2012

ตัวดำเนินการ Operators

ตัวดำเนินการ Operators
ตัวดำเนินการทางด้านคณิตศาสตร์ Arithmetic Operators
การใช้งานชื่อตัวดำเนินการ ความหมาย
$a + $bบวก หาผลรวมระหว่าง $a กับ $b
$a - $bลบ หาผลต่างระหว่าง $a กับ $b
$a * $bคูณ หาผลคูณระหว่าง $a กับ $b
$a / $b หารการหารระหว่าง $a กับ $b
$a % $bหารหาเศษ การหารเพื่อหาเอาเศษ ระหว่าง $a กับ $b
ตัวดำเนินการทางด้านการเพิ่มลดค่า Incrementing/Decrementing
การใช้งานชื่อตัวดำเนินการ ความหมาย
++$aPre-increment เพิ่มค่าทีละ 1 ก่อน แล้วค่อยให้ค่ากับตัวแปร
$a++Post-increment ให้ค่ากับตัวแปรก่อนแล้วค่อยเพิ่มค่าทีละ 1
--$aPre-Decrement ลดค่าทีละ 1 ก่อนแล้วค่อยให้ค่ากับตัวแปร
$a--Post-Dicrement ให้ค่ากับตัวแปรก่อนแล้วค่อยลดค่าทีละ 1

ตัวดำเนินการทางด้านตรรกศาสตร์ Logical Operators

การใช้งานชื่อตัวดำเนินการ ความหมาย
$a and $bและ เป็นจริง เมื่อ $a และ $b มีค่าเป็น จริง
$a or $bหรือ เป็นจริง เมื่อ $a หรือ $b มีค่าเป็น จริง
$a xor $bและ เป็นจริง เมื่อ $a และ $b ตัวใดตัวหนึ่งเป็น จริง>
! $aตรงกันข้าม เป็นจริง เมื่อ $a มีค่าเป็น เท็จ
$a && $bและ เป็นจริง เมื่อ $a และ $b มีค่าเป็น จริง
$a || $bหรือ เป็นจริง เมื่อ $a หรือ $b มีค่าเป็น เท็จ

ตัวดำเนินการทางเปรียบเทียบ Comparison Operators

การใช้งานชื่อตัวดำเนินการ ความหมาย
$a == $bเท่ากับ เป็นจริง เมื่อ $a มีค่าเท่ากับ $b
$a != $bไม่เท่ากับ เป็นจริง เมื่อ $a มีค่าไม่เท่ากับ $b
$a < $bน้อยกว่า เป็นจริง เมื่อ $a น้อยกว่า $b
$a > $bมากกว่า เป็นจริง เมื่อ $a มีค่ามากกว่า $b
$a <= $bน้อยกว่าหรือเท่ากับ เป็นจริง เมื่อ $a มีค่าน้อยกว่าหรือเท่ากับ $b
$a >= $bมากกว่าหรือเท่ากับ เป็นจริง เมื่อ $a มีค่ามากกว่าหรือเท่ากับ $b
ตัวควบคุมการทำงาน (Control Structures)
        ใน การเขียนโปรแกรมคอมพิวเตอร์นั้น คอมพิวเตอร์จะทำงานโดยเรียงลำดับลงมาจากบน - ลงล่าง (Top - Down) แต่ถ้าหากเราต้องการสั่งให้คอมพิวเตอร์ทำงานย้อนกลับ หรือมีการทำงานซ้ำ เราต้องมีตัวควบคุมการทำงานดังนี้
if...else...elseif
ตัวอย่างการใช้ if ตรวจสอบเงื่อนไขเดียว


       < ?
           $a=30;
           $b=20;
           if($a>$b)
               {
                    echo"a มีค่ามากกว่า b";
               }
        ? >
ตัวอย่างการใช้ if...else ตรวจสอบ 2 เงื่อนไข

       < ?
           $a=30;
           $b=50;
           if($a>$b)
                 {
                     echo"a มีค่ามากกว่า b";
                 }
               else
                 {
                    echo"a มีค่าน้อยกว่า b";
                 }
         ? >
While
       คำ สั่ง while เป็นคำสั่งที่ใช้ในการวนรอบ โดยจะมีการตรวจสอบเงื่อนไขก่อนแล้วค่อยมีการทำงานตามลำดับ แต่ถ้าเงื่อนไขไม่เป็นจริงก็จะออกจากการวนรอบของ while ทันที ดังตัวอย่างต่อไปนี้

        < ?
          $num=1;
          while=($num < =10)
             {
                echo $num++;
                echo"< br >";
             }				   				        
        ? >
Do.. while
       คำ สั่ง Do ..while เป็นคำสั่งที่ใช้ในการวนรอบ โดยจะทำงานตามคำสั่งที่ต้องการก่อน แล้วค่อยมีการตรวจสอบเงื่อนไขทีหลัง ซึ่งถ้าเงื่อนไขเป็นจริงก็จะวนรอบขึ้นมาทำงานตามคำสั่งที่ต้องการใหม่ แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะออกจากวนรอบทันทีดังตัวอย่าง การหาผลบาก 1 ถึง 10 ต่อไปนี้

        < ?
          $num=1;
          $sum=0;
          do{
                $sum=$sum+$num;
                $num++;
              }while ( $num < = 10);
                echo"ผลลัพธ์ที่ได้คือ : $sum";
        ? >
For
       คำ สั่ง For เป็นคำสั่งที่ใช้ในการวนรอบ แต่จะไม่มีการตรวจสอบเงื่อนไข จะทำตามค่าที่ได้กำหนดไว้แล้วเท่านั้น ดังตัวอย่างต่อไปนี้

          < ?
              for($num=1;$num < = 10;$num++;)
                {
                      echo"$num < br >";
                }
          ? >
Break
       คำสั่ง Break เป็นคำสั่งที่ใช้ในการหลุดออกจากเงื่อนไข หรือ จบเงื่อนไขทันที ดังจะเห็นได้จากตัวอย่างต่อไปนี้

      < ?
          $num=0;
          while=($num < =50)
             {
                if($num==20)
                     {
                        Break;
                     }
                    echo"$num < br >";
                    $num++;
              }			   				        
        ? >
Continue
       คำ สั่ง Continue เป็นคำสั่งที่ใช้ควบคู่กับคำสั่งวนรอบ โดยเมื่อโปรแกรมทำการรันคำสั่งนี้ จะเป็นการกระโดดไปเริ่มต้นรอบใหม่ทันที (ใช้กับคำสั่ง for คำสั่ง while) ตัวอย่างเป็นการพิมพ์เลขคู่จาก 0 ถึง 50

       < ?
         for($num=0;$num< =50;$num++)
             { 
                 if($num % 2)
                     {
                        continue;
                     }
                     echo"$num < br >";
              }
       ? >
Switch
       คำสั่ง Switch เป็นคำสั่งที่ใช้ในการเลือกเงื่อนไขจำนวนมาก ๆ ซึ่งจะสะดวกกว่าการใช้คำสั่ง if ดังตัวอย่างต่อไปนี้

        < ?
          $num=2;
          switch($num)
              {
                case=0:
                     echo"num มีค่าเท่ากับ 0";
	                 break;
                case=1:
                     echo"num มีค่าเท่ากับ 1";
                     break;
                case=2:
                     echo"num มีค่าเท่ากับ 2";
                     break;
                default;
                     echo"num ไม่มีค่าเท่ากับ 0,1 หรือ 2 เลย";
             }			   				        
          ? >
Include()
       คำสั่ง Include เป็นการเรียก PHP script ที่อยู่ในไฟล์อื่นเข้ามาทำงานโดยสามารถเรียกใช้งานภายใต้โครงสร้างของการวนรอบ (Loop)

        < ?
          $fi=array('inc1.inc','inc2.inc','inc3.inc');
          for=($num=0;$num < count($fi);$num++)
             {
                 include $fi[$num];
             }			   				        
        ? >
Require();
       คำ สั่ง Require(); เป็นการเรียก PHP script ที่อยู่ในไฟล์อื่นเข้ามาทำงานคล้ายกับคำสั่ง Include() แต่ไม่สามารถเรียกใช้งานภายใต้โครงสร้างของการวนรอบ (Loop) ได้ดังตัวอย่าง

         < ?
              require('library.inc");
         ? >
Fanctions
       ฟังก์ชัน นั้นนอกจากที่มากับตัว Libraries ของ PHP แล้ว เราสามารถที่จะเขียนฟังก์ชันการทำงานขึ้นใช้เองได้ ซึ่งมีอยู่ 2 แบบด้วยกันคือ
       1. ฟังก์ชันที่ไม่มีการส่งค่าระหว่างฟังก์ชัน
       2. ฟังก์ชั่นที่มีการส่งค่าระหว่างฟังก์ชั่น


         < ?
               function task()
                 {
                     echo"http://task.rid.ac.th< br>";
                     echo"Contact : srisod@hotmail.com< br>";
                     echo"Thank you";
                 }
                     task();
          ? >

การกำหนดชนิดของข้อมูล (Types) ให้กับตัวแปร

การกำหนดชนิดของข้อมูล (Types) ให้กับตัวแปร
         ในภาษา PHP จะเหมือนกับภาษาระดับสูงอื่น ๆ คือมีการกำหนดตัวแปร ซึ่งวธีการกำหนดตัวแปรใน PHP นั้นจะใช้ เครื่องหมายดอลล่าร์ ($) ดังนี้

$a=1; # ตัวอย่างที่ 1
$a=2; # ตัวอย่างที่ 1
         ประโยชน์อย่างหนึ่งของตัวแปรนั้น คือการเก็บค่าข้อมูลชั่ว คราวเพื่อใช้ในการประมวลผล ซึ่งค่าข้อมูลที่ตัวแปรสามารถเก็บได้จะมีทั้ง ตัวอักษร ตัวเลข ดังตารางต่อไปนี้
Integersตัวเลขจำนวนเต็ม เช่น 123, - 233
Floating point numbersตัวเลขที่มีทศนิยม เช่น 123.22
Stringsตัวอักษร ข้อความ เช่น "HELLO PHP"
Arraysข้อมูลเป็นชุด กลุ่มสมาชิก
Objectsข้อมูลในลักษณะของการเรียกใช้เป็น Class Object หรือ Function
Type jugglingข้อมูลในลักษณะที่ขึ้นกับตัว Operator
Integers
       ตัวอย่างการใช้งาน ตัวเลขจำนวนเต็ม (Integers)


             $a=123;       #ตัวอย่างที่ 1
             $a=-456;      #ตัวอย่างที่ 2
             $a=0789;     #ตัวอย่างที่ 3 มีค่าเท่ากับ (789) ฐานแปด
             $a=0x10;      #ตัวอย่างที่ 4 มีค่าเท่ากับ (10)  ฐานสิบหก
ตัวเลขทศนิยม (Floating point numbers)
       ตัวอย่างการใช้งาน Floating point numbers


             $a=1.732;       #ตัวอย่างที่ 1
             $a=1.2e5;       #ตัวอย่างที่ 2
ข้อความ (Strings)
       ตัวอย่างการใช้งาน Strings ใช้ในการเก็บข้อมูลที่ เป็นค่าคงที่ เช่นข้อความต่าง ๆ ในการกำหนดข้อมูลประเภท Strings นั้น จะมีรหัสควบคุมดังนี้

ตารางรหัสควบคุม String
\nสำหรับขึ้นบรรทัดใหม
\rCarriage ใช้สำหรับให้ตัว Cussor ไปอยู่ที่ต้นของบรรทัด
\tใช้ในการเลื่อน Tab
\\ใช้ในการพิมพ์เครื่องหมาย \ (Backslash)
\$ใช้ในการพิมพ์เครื่องหมาย $ (Dollar Sing)
\"ใช้ในการพิมพ์เครื่องหมาย " (Double-Quote)
\[0-7]{1,3}ช้กำหนดอักขระเป็นรหัส ASCII ฐาน 8
\X[0-9A-Fa-f]{1,2}ใช้กำหนดอักขระเป็นรหัส ASCII ฐาน 16
       ตัวอย่างการใช้งาน Strings

             $a="Test";
             $b=$a  "PHP";
             echo"$b";
       ผล : Test PHP
กลุ่มข้อมูล (Arrays)
       อะเรย์ คือ การเก็บข้อมูลเป็นชุด โดยแต่ละชุดจะมีสมาชิกได้หลายตัว และเราอ้างถงสมาชิกในอะเรย์นั้นได้โดยใช้เครื่องหมาย [...]

อะเรย์ 1 มิติ (Single Dimension Arrays)

             $a[0]="test";      #กำหนดให้สมาชิก 0 ของอะเรย์ a เก็บค่า test
             $a[1]="php";      #กำหนดให้สมาชิก 1 ของอะเรย์ a เก็บค่า php
             $b["var"]=50      #กำหนดให้สมาชิก var ของอะเรย์ b เก็บค่า 50
อะเรย์หลายมิติ (Multi - Dimensional Arrays)

             $a[1]=$f;                             #อะเรย์แบบ 1 มิติ
             $a["var"]=$f;                       #อะเรย์แบบ 1 มิติ
             $a[1][0]=$f;                         #อะเรย์แบบ 2 มิติ
             $a["var"][2]=$f;                   #อะเรย์แบบผสม 2 มิติ
             $a[3]["tmp"]=$f;                   #อะเรย์แบบผสม 2 มิติ
             $a["var"][4]["tmp"][0]=$f;    #อะเรย์แบบผสม 4 มิติ
ข้อมูลแบบวัตถุ (Objects)
        Objects คือการเขียนชุดคำสั่งที่ มีลักษณะเป็นโปรแกรมย่อยเชิงวัตถุ ในการทำงาน อาจจะอยู่ในรูปของ Class หรือ Function การทำงาน เช่น


       class who
            {
               function get_who()
                  {
                     echo"My name is PHP";
                  }
            }
            $name=new who;
            $name->get_who(); 
       จาก โค้ดเราได้สร้างคลาส who และมีฟังก์ชั่นชื่อ get_who อยู่ภายในคลาส ต่อมาเราได้สร้างตัวแปร name ที่เป็นออบเจกต์ที่เกิดจากคลาส who ($name=new who;) ตัวแปร name ที่เราสร้างจากคลาส who จะมีคุณสมบัติเหมือนกับคลาส who คือสามารถให้ฟังก์ชั่น get_who ได้ ($name->get_who();) จากตัวอย่างจะเห็นได้ว่าเวลาเรียกใช้ เราสามารถเรียกใช้แค่ฟังก์ชั่นที่เราสร้างชั้นเท่านั้น ลักษณะงานที่เราทำงานบ่อย ๆ ก็ควรที่จะเขียนเป็นฟังก์ชั่นไว้เรียกใช้งาน จากตัวอย่างนี้ ผลลัพธ์ที่ได้คือข้อความว่า My name is PHP
Type juggling
        เป็นการเก็บข้อมูลในลักษณะที่ขึ้นกับตัว Operator ตัวอย่างการใช้งาน Type juggling

       $var=5+"10 Small";
     $var มีค่าเท่ากับ 15 โดยดูจาก Operator เป็นเครื่องหมาย + ทำให้ PHP มองค่าทั้งสองเป็นตัวเลข (integer)

การเขียนอธิบายโปรแกรมด้วย Comment

การเขียนอธิบายโปรแกรมด้วย Comment
       ในการเขียน คำบรรยายโปรแกรม หรือการยกเลิกโค้ดคำสั่งบางบรรทัดชั่วคราวหรือการเพิ่มรายละเอียดโปรแกรมเพื่อใช้เตือนความจำ ซึ่งเป็นส่วน ที่ไม่เกี่ยวข้องกับตัวโปรแกรม เราสามารถใช้สัญลักษณ์ // และ # เพื่อบอกให้ตัวแปลภาษาไม่ต้องสนใจประโยคเหล่านั้นได้ดังตัวอย่าง

         < html >
                < head >
                       < title > TEST PHP < /title >
                < /head >
         < body >
                < h3 > TEST ECHO < /h3 >
                < ?// echo "HELLO PHP"; ? >
        < /body >
        < /html >
       จะ เห็นได้ว่าตัวแปลภาษา PHP จะไม่สนใจโค้ดที่ถูก Comment อยู่จึงทำให้ผลลัพธ์ที่ออกมามีแต่ประโยคที่เกิดจาก HTML เพียงอย่างเดียว จะเห็นผลลัพธ์ดังนี้
TEST PHP

ตัวอย่างโปรแกรมที่เขียนด้วย PHP

ตัวอย่างโปรแกรมที่เขียนด้วย PHP
       เมื่อเราได้รู้จัก โครงสร้างภาษา PHP และได้ทราบว่า PHP สามารถทำงานควบคู่กับ HTML ได้ โดยสร้างโค้ดต่อไปนี้


         < html >
                < head >
                       < title > TEST PHP < /title >
                < /head >
         < body >
                < h3 > TEST ECHO < /h3 >
                < ? echo "HELLO PHP"; ? >
        < /body >
        < /html >
       จาก นั้นเรานำไฟล์ที่สร้างขึ้นไปเก็บไว้ที่ Home Directory ของ Web server ที่เราใช้ เช่น ถ้าใช้ OmniHTTPd จะมี Home Directory เป็น C:\httpd\HtDocs  ถ้าเป็น Personal Web Server จะมี Home Directory เป็น C:\Inetpub\wwwroot   ถ้าเป็น UNIX จะมี Directory เป็น /home/httpd/htdocs สุดท้ายคือการดูผลลัพธ์โปรแกรม ให้เราเรียก Browser ขึ้นมา (ให้เราสังเกตที่ Taskbar ว่า Web server ทำงานอยู่หรือไม่) จากนั้นระบุ URL ดังนี้ http://127.0.0.1/test.php จะเห็นผลลัพธ์ดังนี้
TEST PHP
TEST ECHO
       จะเห็นผลลัพธ์ดังรูป โดยประโยคแรกจะเกิดจากคำสั่ง HTML ส่วนประโยคด้านล่างจะเกิดจากคำสั่ง PHP

รูปแบบโครงสร้างพื้นฐานของ PHP

รูปแบบโครงสร้างพื้นฐานของ PHP         PHP เป็นภาษาที่สามารถใช้งานร่วมกับภาษา HTML ได้ ในการเขียนรหัส (Code) โปรแกรม มีวิธีการเขียนได้หลายรูปแบบ จึงจำเป็นต้องมี สัญลักษณ์ที่บ่งบอกถึงขอบเขตของ PHP เพื่อที่จะแยกโค้ด PHP ออกจากโค้ด HTML ได้อย่างชัดเจน โดยมีรูปแบบในการเขียนแทนด้วยสัญลักษณ์ต่าง ๆ ที่เรา สามารถนำมาใช้แยกโค้ด PHP ได้มีดังนี้

1. การเขียนแบบ SGML (Standard Generalized Markup Language) เป็นรูปแบบการเขียนที่เป็นมาตรฐานของภาษาประเภท xxML โดยมีรูปแบบ
การเขียนดังตัวอย่าง
         < ?
              echo("PHP SGML Syntax\n");
         ? >
		 
       เปิดด้วยแท็ก < ? และปิดด้วยแท็ก ? > ภายใต้แท็ก < ? ... ? > คือคำสั่งที่ เราเขียนขึ้น ตามหลักของภาษา PHP

2. การเขียนแบบ XML Document เป็นรูปแบบการเขียนของภาษาประเภท XML
โดยมีรูปแบบ ชื่อของภาษาที่ใช้อยู่บริเวณ TAG เปิด การเขียนดังตัวอย่าง
         < ?PHP
              echo("PHP Language Syntax\n");
         ? >
		 
       เปิดด้วยแท็ก < ?PHP และปิดด้วยแท็ก ? > ภายใต้แท็ก < ? ... ? > คือคำสั่งที่ เราเขียนขึ้น ตามหลักของภาษา PHP

3. การเขียนแบบภาษา Script เป็นรูปแบบการเขียนคล้ายกับภาษา JAVA Script
การเขียนดังตัวอย่าง
         < script language="PHP">
              echo("PHP Script Language Style\n");
        < /script >
		 
       เปิดด้วยแท็ก < script language="PHP"> และปิดด้วยแท็ก < /script >

4. การเขียนแบบ ASP (Active Server Page) เป็นรูปแบบการเขียนที่เป็น
มาตรฐานของภาษาประเภท ASP โดยมีรูปแบบ
การเขียนดังตัวอย่าง
         < %
              echo("PHP ASP Syntax\n");
         %>
		 
       เปิดด้วยแท็ก < % และปิดด้วยแท็ก % > ภายใต้แท็ก < % ... %> คือคำสั่งที่ เราเขียนขึ้น ตามหลักของภาษา PHP

โครงสร้างของภาษา PHP

โครงสร้างของภาษา PHP

PHP คืออะไร
     ในช่วงแรกภาษาที่นิยมใช้งานบนระบบ เครือข่าย คือ ภาษา HTML (Hypertext Markup Language) แต่ภาษา HTML มีลักษณะเป็น Static คือ ภาษาที่มีลักษณะของข้อมูลคงที่ ซึ่งไม่เพียงพอต่อความต้องการในปัจจุบันที่นิยมใช้ระบบเครือข่าย Internet เป็นศูนย์กลางในการติดต่อระหว่างกัน ทำให้ต้องการใช้เว็บไซต์ที่มีลักษณะเป็นแบบ Dynamic คือ เว็บไซต์ที่ข้อมูลสามารถเปลี่ยนแปลงได้โดยอัตโนมัติตามเงื่อนไขต่าง ๆ ที่ผู้เขียนเว็บไซต์เป็นผู้กำหนด และการควบคุมการทำงานเหล่านี้จะกระทำโดยโปรแกรมภาษาสคริปต์ เช่น ภาษา PHP ซึ่งเป็นภาษาหนึ่งที่ได้รับความนิยมเป็นอย่างมากในปัจจุบัน

     PHP ถูกสร้างขึ้นในปี ค.ศ.1994 โดย Rasmus Lerdorf ต่อมามีผู้ให้ความสนใจเป็นจำนวนมาก จึงได้ออกเป็นแพ็คเกจ "Personal Home Page" ซึ่งเป็นที่มาของ PHP โดยภาษา PHP เป็นแบบ Server Side Script และเป็น Open Source ที่ผู้ใช้ทั่วไปสามารถดาวน์โหลด Source Code และโปรแกรมไปใช้ฟรี ได้ที่ http://www.php.net

     พอกลางปี ค.ศ.1995 เขาก็ได้พัฒนาตัวแปลภาษา PHP ขึ้นมาใหม่ โดยใช้ชื่อว่า PHP/FI เวอร์ชั่น 2 ซึ่งได้เพิ่มความสามารถในการรับข้อมูลที่ส่งมาจากฟอร์มของ HTML (จึงมีชื่อว่า FI หรือ Form Interpreter) นอกจากนั้นยังเพิ่มความสามารถในการติดต่อกับฐานข้อมูลอีกด้วย จึงทำให้ผู้คนเริ่มหันมาสนใจ PHP กันมากขึ้น

     ในปี 1997 มีผู้ร่วมพัฒนา PHP เพิ่มอีก 2 คน คือ Zeev Suraski และ Andi Gutmans (กลุ่มที่เรียกตัวเองว่า Zend ซึ่งย่อมาจาก Zeev และ Andi ) โดยได้แก้ไขข้อบกพร่องต่างๆ และเพิ่มเติมเครื่องมือให้มากขึ้น

โครงสร้างของภาษา PHP
     ภาษา PHP มีลักษณะเป็น embedded script หมายความว่าเราสามารถฝังคำสั่ง PHP ไว้ในเว็บเพจร่วมกับคำสั่ง(Tag) ของ HTML ได้ และสร้างไฟล์ที่มีนามสกุลเป็น .php, .php3 หรือ .php4 ซึ่งไวยากรณ์ที่ใช้ใน PHP เป็นการนำรูปแบบของภาษาต่างๆ มารวมกันได้แก่ C, Perl และ Java ทำให้ผู้ใช้ที่มีพื้นฐานของภาษาเหล่านี้อยู่แล้วสามารถศึกษา และใช้งานภาษานี้ได้ไม่ยาก
ตัวอย่างที่ 1
1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Example 1 </title>
</head>
<body>

<?
   echo"Hi, I'm a PHP script!";
?>

</body>
</html>

     จากตัวอย่าง บรรทัดที่ 6 - 8 เป็นส่วนของสคริปต์ PHP ซึ่งเริ่มต้นด้วย <? ตามด้วยคำสั่งที่เรียกฟังก์ชั่นหรือข้อความ และปิดท้ายด้วย ?> สำหรับตัวอย่างนี้เป็นสคริปต์ที่แสดงข้อความว่า "Hi, I'm a PHP script" โดยใช้คำสั่ง echo ซึ่งเป็นคำสั่งที่ใช้ในการแสดงผลของภาษาสคริปต์ PHP ซึ่งจะแสดงผลดังนี้
 เราสามารถฝังคำสั่ง PHP ไว้ในเว็บเพจหนึ่งๆ โดยเปิดและปิดด้วยแท็ก(Tag) ของ PHP กี่ครั้งก็ได้ ดังตัวอย่างต่อไปนี้

ตัวอย่างที่ 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>Example 1 </title>
</head>
<body>

<table border=1>
<tr>
<td>
<? echo"PHP script block 1"; ?></td>
<td>
<? echo"PHP script block 2 "; ?></td>
</tr>
</table>

<?
   echo"PHP script block 3 <br> ";
   echo date("ขณะนี้เวลา H:i น.");
?>

</body>
</html>

แสดงผลลัพธ์

ความสามารถของภาษา PHP
  • เป็นภาษาที่มีลักษณะเป็นแบบ Open source ผู้ใช้สามารถ Download และนำ Source code ของ PHP ไปใช้ได้โดยไม่เสียค่าใช้จ่าย
  • เป็นสคริปต์แบบ Server Side Script ดังนั้นจึงทำงานบนเว็บเซิร์ฟเวอร์ ไม่ส่งผลกับการทำงานของเครื่อง Client โดย PHP จะอ่านโค้ด และทำงานที่เซิร์ฟเวอร์ จากนั้นจึงส่งผลลัพธ์ที่ได้จากการประมวลผลมาที่เครื่องของผู้ใช้ในรูปแบบของ HTML ซึ่งโค้ดของ PHP นี้ผู้ใช้จะไม่สามารถมองเห็นได้
  • PHP สามารถทำงานได้ในระบบปฎิบัติการที่ต่างชนิดกัน เช่น Unix, Windows, Mac OS หรือ Risc OS อย่างมีประสิทธิภาพ เนื่องจาก PHP เป็นสคริปต์ที่ต้องทำงานบนเซิร์ฟเวอร์ ดังนั้นคอมพิวเตอร์สำหรับเรียกใช้คำสั่ง PHP จึงจำเป็นต้องติดตั้งโปรแกรมเว็บเซิร์ฟเวอร์ไว้ด้วย เพื่อให้สามารถประมวลผล PHP ได้
  • PHP สามารถทำงานได้ในเว็บเซิร์ฟเวอร์หลายชนิด เช่น Personal Web Server(PWS), Apache, OmniHttpd และ Internet Information Service(IIS) เป็นต้น
  • ภาษา PHP สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming)
  • PHP มีความสามารถในการทำงานร่วมกับระบบจัดการฐานข้อมูลที่หลากหลาย ซึ่งระบบจัดการฐานข้อมูลที่สนับสนุนการทำงานของ PHP เช่น Oracle, MySQL, FilePro, Solid, FrontBase, mSQL และ MS SQL เป็นต้น
  • PHP อนุญาตให้ผู้ใช้สร้างเว็บไซต์ซึ่งทำงานผ่านโปรโตคอลชนิดต่างๆ ได้ เช่น LDAP, IMAP, SNMP, POP3 และ HTTP เป็นต้น
  • โค้ด PHP สามารถเขียน และอ่านในรูปแบบของ XML ได้

PHP คืออะไร

PHP คืออะไร

หลายคนที่ทำเว็บไซต์ด้วย HTML หรือโปรแกรมช่วยสร้างเว็บไซต์ต่างๆ เช่น Dreamweaver แล้วอาจสงสัยว่าเมื่อทำ form สำหรับ รับค่าเช่น ชื่อ ที่อยู่ เสร็จแล้วจะเก็บค่ายังไง หรือจะทำอย่างไรต่อ หรือเว็บบอร์ดทำงานอย่างไร CMS ทำงานอย่างไร ทำไมบางเว็บไซต์สามารถโต้ตอบกับ ผู้ใช้งานได้ คำตอบของทุกคำถามคือ PHP ครับ

PHP นั้นเป็นภาษาสำหรับใช้ในการเขียนโปรแกรมบนเว็บไซต์ สามารถเขียนได้หลากหลายโปรแกรมเช่นเดียวกับภาษาทั่วไป อาจมีข้อสงสัยว่า ต่างจาก HTML อย่างไร คำตอบคือ HTML นั้นเป็นภาษาที่ใช้ในการจัดรูปแบบของเว็บไซต์ จัดตำแหน่งรูป จัดรูปแบบตัวอักษร หรือใส่สีสันให้กับ เว็บไซต์ของเรา แต่ PHP นั้นเป็นส่วนที่ใช้ในการคำนวน ประมวลผล เก็บค่า และทำตามคำสั่งต่างๆ อย่างเช่น รับค่าจากแบบ form ที่เราทำ รับค่าจากช่องคำตอบของเว็บบอร์ดและเก็บไว้เพื่อนำมาแสดงผลต่อไป แม้แต่กระทั่งใช้ในการเขียน CMS ยอดนิยมเช่น Drupal , Joomla พูดง่ายๆคือเว็บไซต์จะโต้ตอบกับผู้ใช้ได้ ต้องมีภาษา PHP ส่วน HTML หรือ Javascript ใช้เป็นเพียงแค่ตัวควบคุมการแสดงผลเท่านั้น

นอกจากภาษา PHP แล้วยังมีภาษาอื่นอีกหรือไม่
คำตอบคือมีครับ เช่น ASP , JSP แต่ที่นิยมมาก คือ PHP เพราะเป็นภาษาที่สามารถศึกษาได้ง่าย ทำงานได้มีประสิทธิภาพ ทำให้เป็นที่นิยมอย่างยิ่งในปัจจุบัน รวมทั้งมีชุมชนคนใช้งาน และคู่มือที่ ดีมาก และสำคัญสุดคือฟรีครับ การใช้งานภาษา PHP ไม่ต้องมีค่าใช้จ่ายใดๆทั้งสิ้น ทุกคนสามารถเข้าถึงได้

การจะเขียน PHP ต้องมีอะไรบ้าง
อย่างที่บอกไปว่า PHP นั้นจำเป็นจะต้องมีการประมวลผลดังนั้นการใช้งานเราจะต้องมี Web Server เพื่อให้ตัว PHP สามารถทำงานได้ ต่างจาก HTML งั้นจะทำอย่างไรถ้าเราไม่ได้เช่า Web Server เอาไว้จะใช้งาน PHP ไม่ได้หรือ คำตอบคือได้ครับ แต่เราจะต้องลงโปรแกรม ให้เครื่องที่เราใช้งานอยู่นั้นทำงานเหมือนกับ Web Server ซะก่อนซึ่งโปรแกรมนั้นชื่อว่า Apache ครับเป็นโปรแกรมฟรีเหมือนกัน นี่เป็นข้อดี ที่ทำให้ทุกคนรัก PHP ครับ หลังจากที่เราทำให้เครื่องของเรานั้นเหมือนกับ Web Server แล้วจะเก็บข้อมูลเว็บไซต์เช่น คำตอบของเว็บบอร์ด จะเก็บอย่างไร คำตอบคือต้องมีโปรแกรมฐานข้อมูลอีกตัวเข้ามาช่วยครับ ซึ่งโปรแกรมที่แนะนำคือ MySQL ครับฟรีอีกเช่นกัน ทั้งหมดสำหรับมือใหม่อาจ จะเริ่มลงโปรแกรมทั้งหมดนั้นยากนะครับ จึงมีโปรแกรมที่รวมทุกอย่าง เพื่อจำลองเครื่องของเราให้เป็น Web Server เลยสามารถลงได้ง่ายๆ ซึ่ง จะมีสอนในบทต่อไปนะครับ

การพัฒนาเว็บไซต์ด้วย PHP
สำหรับผู้พัฒนาเว็บไซต์ด้วย PHP นั้นปรกติจะทำการจำลองเครื่องของตัวเองให้เป็น Web Server ระหว่างการพัฒนาเพื่อดูการทำงาน ของโปรแกรมที่เขียนขึ้นมาครับ จากนั้นจึงจะอัพไฟล์ทั้งหมดลงใน Web Server จริงครับ ในส่วนของ Web Server นั้นทาง Hellomyweb ก็มีให้บริการอยู่นะครับ สนใจคลิกที่นี่ครับ ถามว่าเราจะให้เครื่องคอมพิวเตอร์ของเรานั้นทำงานได้เหมือนกับ Web server จริงได้หรือไม่ คำตอบคือได้ครับ แต่มันออกจะไม่คุ่มค่า ทางการเงินนะครับ เพราะเราต้องเสียค่าไฟ ค่าอินเตอร์เน็ต เครื่องคอมก็ต้องเปิดไว้ตลอดปิดไม่ได้ เวลาผู้ใช้งานจากภายนอกมาเรียกใช้ก็รองรับไม่ได้ไม่มาก ดังนั้นการเช่า Web Server ภายนอกจะคุ่มค่ามากกว่าครับ หากต้องการจะพัฒนาเว็บไซต์เพื่อใช้งานจริงๆ

สำหรับคนที่มีข้อสงสัยหรือมีคำถามสามารถตั้งคำถามได้ที่ Webboard ของ Hellomyweb นะครับ ทางเรายินดีตอบทุกคำถามครับ สำหรับบทต่อไปจะพูดถึงโปรแกรมที่ทำการจำลองเว็บไซต์ของเราให้เป็น Web Server ครับ

 
Design by I Love PHP