Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ขอวิธี เอาค่า absolute และ relative link ของ php ครับ



 

ขอวิธี เอาค่า absolute และ relative link ของ php ครับ

 



Topic : 048706

Guest




ขอวิธี เอาค่า absolute และ relative link ของ php ครับ ตามหัวข้อเลยครับ


วิธีสร้างเลยอ่ะครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-09-13 16:54:32 By : ความรู้เท่าหางอึ่ง View : 47799 Reply : 2
 

 

No. 1



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


Code (PHP)
หลายๆ คนคงรู้จักกับ mod_rewrite ซึ่งเป็น module ของ apache ซึ่งตัวนี้น่ะ มันมีประโยชน์ค่อนข้างมากในการทำ url friendly เพื่อให้ google รัก yahoo หลง

ซึ่งโปเกม่อน หลายคนอาจจะเขียนตรงๆ ไปเลยเช่น

   1. RewriteCond %{REQUEST_FILENAME} !-f   
   2. RewriteCond %{REQUEST_FILENAME} !-d   
   3. RewriteRule ^tag\/([^\?].*)$ n5-tag.php?tag=$1 [L]  

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^tag\/([^\?].*)$ n5-tag.php?tag=$1 [L]
แบบนี้ แล้วทีนี้ถ้าเวบเรามีขนาดใหญ่ module เป็นร้อยๆ ไฟล์ .htaccess ของรามีหวังยาวเป็น ร้อยๆ บรรทัดเป็นแน่ เอางี้ดีกว่าลองมาทำตามวิธีผม ไฟล์เดียวครอบจักรวาล

1. ไฟล์ .htaccess

   1. RewriteEngine On   
   2. RewriteCond %{REQUEST_FILENAME} -f [OR]   
   3. RewriteCond %{REQUEST_FILENAME} -d   
   4. RewriteRule ^(.+) - [PT,L]   
   5. RewriteRule ^(.*) index.php  

RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+) - [PT,L] RewriteRule ^(.*) index.php
จบแล้วครับไฟล์ .htaccess เราใช้แค่นี้ คือบอกมันว่า "ไม่ว่าจะเจออะไร วิ่งมาที่ index.php ให้หมดเลยนะ"

2. ไฟล์ common.inc.php

   1. // Relative path   
   2. $conf['dir'] = str_replace('\\', '/', dirname(__FILE__));  
   3. // Absolute path  
   4. $conf['path'] = "http://".$_SERVER['SERVER_NAME'].str_replace($_SERVER['DOCUMENT_ROOT'], '', $conf['dir']);  
   5. // uri แบบที่ตัด root folder ออก  
   6. $conf['uri'] = str_replace($conf['dir'].'/', '', $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);  
   7. // explode เพื่อตัดข้อมูลหลังจาก ? ออกไป  
   8. list($xuri) = explode('?', $conf['uri'], 2);   
   9. // explode เพื่อสร้าง array โดยการ แยก ที่ตำแหน่ง /   
  10. $uri = explode("/", $xuri);  

// Relative path $conf['dir'] = str_replace('\\', '/', dirname(__FILE__)); // Absolute path $conf['path'] = "http://".$_SERVER['SERVER_NAME'].str_replace($_SERVER['DOCUMENT_ROOT'], '', $conf['dir']); // uri แบบที่ตัด root folder ออก $conf['uri'] = str_replace($conf['dir'].'/', '', $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']); // explode เพื่อตัดข้อมูลหลังจาก ? ออกไป list($xuri) = explode('?', $conf['uri'], 2); // explode เพื่อสร้าง array โดยการ แยก ที่ตำแหน่ง / $uri = explode("/", $xuri);
ส่วนนี้เป็นการเอา absolute path มาแยกออกเป็น array เพื่อที่จะนำไปใช้

3. ไฟล์ index.php

   1. require('common.inc.php');   
   2. // ถ้าไม่เจอข้อมูลอะไรให้เรียก home/ เป็น default   
   3. $loadmodule = ($uri[0]) ? $uri[0] : 'home';   
   4. $inc = 'modules/'.$loadmodule;   
   5. // เช็คดูว่าถ้ามี module นี้จริงๆ ให้ include เข้ามา   
   6. if (is_dir($inc)) {   
   7.     include($inc.'/compile.php');   
   8. }  

require('common.inc.php'); // ถ้าไม่เจอข้อมูลอะไรให้เรียก home/ เป็น default $loadmodule = ($uri[0]) ? $uri[0] : 'home'; $inc = 'modules/'.$loadmodule; // เช็คดูว่าถ้ามี module นี้จริงๆ ให้ include เข้ามา if (is_dir($inc)) {     include($inc.'/compile.php'); }
ไฟล์เรียกใช้งานโดยมีการ inc common.inc.php เข้ามาใช้ ทีนี้เราก็สามารถเอา array ต่างๆ ไปเรียกใช้ได้ตามสะดวกแล้วครับ เช่น

http://www.domain.com/blog/tee/addnew

แบบนี้เราก็จะได้ array ออกมา 3 ชุดคือ

$uri[0] จะได้ blog
$uri[1] จะได้ tee
$uri[2] จะได้ addnew

ซึ่งพวกนี้เราสามารถนำไปใช้ใน เงื่อนไข ได้ตามปกติเลย เช่น

   1. if ($uri[0] == 'blog') {   
   2.     //load blog module   
   3.     include('modules/blog/compile.php');   
   4. }  

if ($uri[0] == 'blog') {     //load blog module     include('modules/blog/compile.php'); }
แล้วใน modules/blog/compile.php เรายังสามารถเรียก action ต่างๆ ได้อีกเช่น

   1. switch($uri[2]) {   
   2.     case 'addnew' :   
   3.         // do something   
   4.     break;   
   5.     default :   
   6.        // do somthing else   
   7.     break;   
   8. }  



อ่านอันนี้แล้วทำความเข้าใจ นะครับ ที่มาครับ http://php.deeserver.net/webboard/odshow.php?No=38430&rep=6






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-13 17:02:02 By : SOUL
 


 

No. 2

Guest


ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-13 20:07:51 By : ความรู้เท่าหางอึ่ง
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอวิธี เอาค่า absolute และ relative link ของ php ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่