ผลต่างระหว่างรุ่นของ "ภาษาพีเอชพี"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
บรรทัดที่ 20:
 
 
==== ทดลองใช้งานจริง ====
คราวนี้เราจะลองมาทดลองใช้งาน PHP ในการใช้งานจริงๆ เราลองใช้ PHP เช็ค Browser ของผู้เข้าชมว่าใช้ Browser ตัวใดอยู่ เราสามารถเช็คได้จากสัญญาณที่ส่งมาจาก Browser ซึ่งส่งมากับ HTTP request. ข้อมูลนี้จะถูกเก็บไว้เป็น ตัวแปร ซึ่งตัวแปรทุกตัว จะขึ้นต้นด้วย ตัวดอลล่าร์ ($) เสมอใน PHP และตัวแปรที่เราจะใช้ในตอนนี้ก็คือ ''$_SERVER["HTTP_USER_AGENT"]'' .
 
<div style="padding-left:20px">'''ข้อควรจำ :''' ''$_SERVER'' เป็นตัวแปรหลักของ PHP ที่ไม่สามารถตั้งชื่อซ้ำได้ ซึ่งตัวแปรนี้จะมีข้อมูลของ Web server ทั้งหมด. หรือจะเรียกว่าเป็นแบบ autoglobal (หรือ superglobal). คุณสามารถดูข้อมูลเพิ่มเติมได้จากบทความในหมวด autoglobals. ตัวแปรพิเศษนี้ เราได้แนะนำใน PHP 4.1.0. มาก่อนแล้ว, ก่อนหน้านี้เราใช้ ''$HTTP_*_VARS'' แทน, ยกตัวอย่างเช่น ''$HTTP_SERVER_VARS''. แต่อย่างไรก็ตาม, ตัวแปรแบบเก่ายังคงอยู่เช่นกัน. (ลองดูที่ โค๊ดเก่า.) </div>
 
เพื่อที่จะลองใช้ตัวแปรนี้, คุณสามารถลองทำตามวิธีง่ายๆ นี้:
 
'''ตัวอย่างที่ 2-2. แสดงค่าตัวแปร (จากค่าใน Array)'''
 
<FONT color=#0000bb>&lt;?php <FONT color=#007700>echo <FONT color=#0000bb>$_SERVER</FONT>[<FONT color=#dd0000>"HTTP_USER_AGENT"</FONT>];</FONT> ?></FONT>
 
ผลที่จะแสดงออกมาน่าจะเป็น:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
 
ในตอนนี้มีตัวแปรหลายรูปแบบด้วยกัน ที่สามารถใช้ได้ใน PHP. ซึ่งนอกเหนือจากตัวอย่างที่เราแสดงค่าจาก Array ไปแล้ว. ยังมี Arrays ที่สามารถนำไปใช้งานได้อีกมากมาย
 
''$_SERVER'' เป็นแค่หนึ่งในตัวแปรที่สร้างโดยอัตโนมัติที่สร้างขึ้นโดย PHP. คุณสามารถดูรายชื่อตัวแปรต่างๆ ได้จากหมวด ตัวแปรจำเพาะ จากบทความนี้ หรือ คุณสามารถหา รายชื่อทั้งหมดโดยการสร้างไฟล์ PHP แบบนี้:
 
'''ตัวอย่างที่ 2-3. ดูข้อมูลระบบจาก PHP ด้วย phpinfo()'''
<FONT color=#0000bb>&lt;?php phpinfo<FONT color=#007700>();</FONT> ?></FONT>
 
เมื่อคุณเปิดไฟล์นี้จาก Broweser, คุณจะเห็นหน้าที่มีข้อมูลทั้งหมดเกี่ยวกับ PHP ซึ่งในที่นี้ รวมไปถึงรายชื่อตัวแปรที่คุณสามารถใช้ได้.
 
คุณสามารถใส่คำสั่ง PHP หลายๆ ตัวพร้อมกันใน แท็ก PHP เดียว และสร้างบล็อกโค้ดเล็กๆ ที่สามารถทำอะไรมากกว่า echo ได้. ตัวอย่างเช่น, ถ้าคุณอยากจะเช็คว่า Browser ที่กำลังเปิดหน้าของคุณอยู่ คือ Internet Explorer หรือเปล่า คุณสามารุทำได้ดังนี้:
 
'''ตัวอย่างที่ 2-4. ตัวอย่างการใช้โครงสร้างควบคุมและฟังค์ชั่น'''
<FONT color=#0000bb>&lt;?php <FONT color=#007700>
if (</font>strpos<FONT color=#007700>(</font>$_SERVER<FONT color=#007700>[</font><FONT color=#dd0000>"HTTP_USER_AGENT"</font><FONT color=#007700>], </font><FONT color=#dd0000>"MSIE"</font><FONT color=#007700>) !== </font>false<FONT color=#007700>) {
echo </font><FONT color=#dd0000>"You are using Internet Explorer&lt;br />"</font><FONT color=#007700>;
}</font>
?>
ส่วนผลพันธ์ที่จะปรากฏขึ้นมา น่าจะเป็น:
You are using Internet Explorer<br />
ตอนนี้เราได้แนะนำถึงแนวทางใหม่ นั้นคือ เราได้ใช้ คำสั่ง if. ถ้าคุณเคยลองใช้หรือมีพื้นฐานของภาษา C มาก่อน, คุณคงจะคุ้นเคยกับคำสั่งนี้ทีเดียว. แต่ถ้าคุณไม่เคยมีพื้นฐานหรือเคยเรียนรู้มาก่อน,คุณอาจลองหาหนังสือแนะนำ PHP มาอ่านสักเล่ม แล้วลองอ่านในบทแรกๆ ของหนังสือ, หรือคุณลองอ่านในหมวด อ้างอิงภาษา ซึ่งจะเป็นคู่มือให้คุณ. คุณสามารถหารายชื่อหนังสือได้ที่ http://www.php.net/books.php.
 
ต่อไป เราจะลองดูแนวทางที่ 2 ซึ่งเราจะแนะนำวิธีใช้ ฟังค์ชั่น strpos(). ฟังค์ชั่น strpos() เป็นฟังค์ชั่น ที่สร้างให้ PHP ค้นหา string ในประโยคที่อยู่ใน string. ในกรณีนี้ เราจะลองมาค้นหาคำว่า "MSIE" (เราจะเปรียบเทียบให้เป็นเข็ม) ในตัวแปร $_SERVER["HTTP_USER_AGENT"] (เราจะเปรียบเทียบให้เป็นมหาสมุทร). ถ้าคุณอยากงมเข็มในมหาสมุทร, ฟังค์ชั่นนี้จะส่งค่าว่า เข็ม อยู่ที่ไหนของมหาสมุทร. ซึ่งถ้าไม่มี มันส่งค่ากลับเป็น FALSE. แต่ถ้าไม่ได้ส่งค่ากลับมาเป็น FALSE, ฟังค์ชั่น if จะได้รับค่าเป็น TRUE และดำเนินการตามค่าที่อยู่ใน { ปีกกา }. แต่หาก, โค้ดตัวนี้ไม่ทำงาน. ลองใช้ฟังค์ชั่นที่คล้ายกัน, กับ if, else, และงฟังค์ชั่นอื่นๆ อย่างเช่น strtoupper() และ strlen(). ซึ่งอยู่ในหน้าคู่มือการใช้ และยังมี โค้ดตัวอย่างอีกด้วย. ถ้าคุณไม่แน่ใจว่าจะใช้ฟังค์ชั่นยังไง, คุณอาจสนใจที่จะอ่านหน้า วิธีอ่านคำนิยามฟังค์ชั่น และ หมวด ฟังค์ชั่น PHP.
 
ตอนนี้ เราสามารถก้าวหน้าไปอีกขั้นหนึ่ง และ แสดงให้คุณเห็นว่า เราสามารถ เข้า และ ออกจาก โหมด PHP อย่างไร แม้ว่าเราจะอยู่ตรงการของบล็อค PHP
 
'''ตัวอย่างที่ 2-5. วิธีใช้ HTML ร่วมกับ PHP'''
<FONT color=#000000><FONT color=#0000bb>&lt;?php
</FONT><FONT color=#007700>if (</FONT><FONT color=#0000bb>strpos</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$_SERVER</FONT><FONT color=#007700>[</FONT><FONT color=#dd0000>"HTTP_USER_AGENT"</FONT><FONT color=#007700>],</FONT><FONT color=#dd0000>"MSIE"</FONT><FONT color=#007700>) !== </FONT><FONT color=#0000bb>false</FONT><FONT color=#007700>) {</FONT>
<FONT color=#0000bb>?&gt;
</FONT>&lt;h3&gt;strpos must have returned non-false&lt;/h3&gt;
&lt;center&gt;&lt;b&gt;You are using Internet Explorer&lt;/b&gt;&lt;/center&gt;
<FONT color=#0000bb>&lt;?php</FONT>
<FONT color=#007700>} else {</FONT>
<FONT color=#0000bb>?&gt;</FONT>
&lt;h3&gt;strpos must have returned false&lt;/h3&gt;
&lt;center&gt;&lt;b&gt;You are not using Internet Explorer&lt;/b&gt;&lt;/center&gt;
<FONT color=#0000bb>&lt;?php</FONT>
<FONT color=#007700>}</FONT>
<FONT color=#0000bb>?&gt;</FONT> </FONT>
 
ส่วนผลพันธ์ที่จะปรากฏขึ้นมา น่าจะเป็น:
&lt;h3&gt;strpos must have returned non-false&lt;/h3&gt;
&lt;center&gt;&lt;b&gt;You are using Internet Explorer&lt;/b&gt;&lt;/center&gt;
แทนที่เราจะให้ PHP ใช้คำสั่ง echo เพื่อแสดงผลสักอย่าง, เราสามารถออกจากโหมดการใช้ PHP และใช้ HTML ธรรมดาๆ ได้ทันที ซึ่งจากโค๊ดนี้ การแสดงผลจะขึ้นอยู่กับค่าของ strpos(). หรือจะพูดง่ายๆ ก็คือ, ผลพันธ์จะขึ้นอยู่กับว่าคำว่า MSIE จะพบหรือไม่.
 
==== ใช้ร่วมกับฟอร์ม ====