ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา  (อ่าน 7570 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
maidai
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 1,799



ดูรายละเอียด
« เมื่อ: 06 สิงหาคม 2008, 14:54:02 »

คือผมขี้เกียจเข้าไปแก้ใน folder ที่มีไฟล์อยู่ เวลาจะ include

 <?php include("../ads2.php"); ?>

มันพอจะมีตัวบอกไหมครับ แบบว่าไม่ต้องพิมพ์ ../  นำหน้าอะไครับ

ประมาณว่า มันจะแทนค่าให้เองโดยอัติโนมัตอ่ะครับ เราต้องใช้คำสั่งไรหว่า???
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 06 สิงหาคม 2008, 15:16:02 »

เคยว่าจะสอนใน WEBDEV Room อยู่ แต่ตอนนี้เลยละกัน

โค๊ด:
$deep = 1;   //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<2; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg."/".basename($_SERVER['PHP_SELF']).")$#", "", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);

include($path."/ads2.php");

คงไม่ต้องอธิบาย  Tongue
บันทึกการเข้า

maidai
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 1,799



ดูรายละเอียด
« ตอบ #2 เมื่อ: 06 สิงหาคม 2008, 15:22:49 »

ขอบคุณ โจ้มากครับ  Cry ซี๊ดดด
บันทึกการเข้า

ITAXIz
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 1,439



ดูรายละเอียด
« ตอบ #3 เมื่อ: 06 สิงหาคม 2008, 16:19:29 »

แจ่มมม

 :Smiley
บันทึกการเข้า
Learn to SEO
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 80



ดูรายละเอียด
« ตอบ #4 เมื่อ: 06 สิงหาคม 2008, 16:36:07 »

ขอบคุณด้วยคน ครับ แอบเอาไปใช้ละ
บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #5 เมื่อ: 06 สิงหาคม 2008, 17:15:21 »

ลอง

โค๊ด:
<?php

set_include_path
$path );

?>

หรือ

โค๊ด:
<?php

ini_set
('include_path' $path );

?>


ต้องใส่ path เต็มนะคับ ใช้ dirname(__FILE__) ช่วยเอา แล้วเซ็ตไว้ที่ไฟล์ header.php
เช่น

โค๊ด:
<?php

set_include_path
dirname(__FILE__) . "/class" );

require_once 
'Multi_Curl.class.php';

?>

เราใส่พาธเต็มของของโฟลเดอร์ที่เราเก็บ ไฟล์พวกที่ต้องเรียกใช้บ่อยๆ กรณีนี้ก็พวก class เวลาเรียกใช้ก็ require_once 'Multi_Curl.class.php'; แค่นี้ไม่ต้องใส่อะไรข้างหน้า เรียกใช้ได้ทุกที่ ไม่ต้องระบุ path เพราะเราเอา path เข้าระบบไปแว้ว (แต่มันจะอยู่แค่ตอนที่สคริปท์รันนะ - -* แหะๆ) แต่ระวังนิดนึง เพราะมันมี include_path เดิมใน php.ini อยู่ ถ้าเราเซ็ตใหม่แล้วไม่เอาของเก่าใส่ไปด้วย อาจเพี้ยนได้
ใช้วิธีนี้

โค๊ด:
<?php

set_include_path
(get_include_path() . PATH_SEPARATOR $path);

?>


ลองอ่านดู http://th.php.net/set_include_path
ผมก็ยังไม่ค่ยได้เหมือนกัน

ขี้เกียจแปล ง่วงมาก ขอนอนก่อนละคับ
บันทึกการเข้า

odido
คนรักเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 156



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 06 สิงหาคม 2008, 17:54:30 »

เคยว่าจะสอนใน WEBDEV Room อยู่ แต่ตอนนี้เลยละกัน

โค๊ด:
$deep = 1;   //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<2; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg."/".basename($_SERVER['PHP_SELF']).")$#", "", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);

include($path."/ads2.php");

คงไม่ต้องอธิบาย  Tongue


อธิบายวิธีนำไปใช้หน่อยก็ดีครับ คนที่ใช้ไม่เป็นจะได้ใช้เป็น ( ผมเอง )  Embarrassed

บันทึกการเข้า

-
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 06 สิงหาคม 2008, 19:48:50 »

ู^
^
ก็ง่ายๆ เลย ก็อบ 3 บรรทัดบนไปใช้ แล้วอ้างอิงเหมือนตัวแปรปกติ
แล้วตรงค่า deep หมายถึงความต่างของไฟล์ที่เราเรียก กะไฟล์ include

จริงๆ ประเด็นโค้ดนี้ ผมใช้กับ javascript

เพราะเคยเทสแล้วว่า javascript จะเรียกแบบ ../file.ext อะไรแบบนี้ไม่ได้
ต้องกำหนด path เต็มอย่างเดียว

....  อ้าว จริงด้วย ลืมไปเลย โค้ดนี้ไว้่ใช้กรณีกับ path ภายนอก ^^"
(หน้าแตกแล้วเรา)


แบบ path ภายในเป็นแบบนี้ (ต้องใช้ str_replace เพื่อปรับในกรณีเป็นโฮสวินโดวน์)

โค๊ด:
$deep = 1;   //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<$deep; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg.")$#", "", str_replace("\\", "/", dirname(__FILE__)));

include($path."/ads2.php");

ส่วนของ path ภายนอก ขอแก้หน่อย (ใช้กะ include ไม่เหมาะ เพราะกินทราฟิคทั้งขาเข้าและออก)

โค๊ด:
$deep = 1;   //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<$deep; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg."/".basename($_SERVER['PHP_SELF']).")$#", "", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);

 Tongue
บันทึกการเข้า

pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 06 สิงหาคม 2008, 21:27:09 »

เอ่อ ผมขอถามต่อได้ไหม ไหน ๆ ก็เรื่อง เดียวกัน

คือว่า  path เต็ม กับ path แบบนี้ ../../  ข้อดีข้อเสียมันต่างกันไงอ่ะ เพราะส่วนมากผมใช้แต่  ../../   Huh?
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 06 สิงหาคม 2008, 22:38:36 »

เอ่อ ผมขอถามต่อได้ไหม ไหน ๆ ก็เรื่อง เดียวกัน

คือว่า  path เต็ม กับ path แบบนี้ ../../  ข้อดีข้อเสียมันต่างกันไงอ่ะ เพราะส่วนมากผมใช้แต่  ../../   Huh?

ไม่ค่อยต่างกันครับ ขึ้นอยู่กับคนเขียนมากกว่าว่าชอบแบบไหนมากกว่า

ส่วนตัวผมชอบพาทเต็ม เพราะต้องมีการโยกย้ายตำแหน่งไฟล์บ่อยครั้งมาก (เขียนให้แต่ละลูกค้าไม่เหมือนกัน)
เลยมักทำเป็น dynamic path ไว้เพื่อเรียกไฟล์ได้ถูกตำแหน่งครับ
บันทึกการเข้า

maidai
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 1,799



ดูรายละเอียด
« ตอบ #10 เมื่อ: 07 สิงหาคม 2008, 13:35:32 »

โค๊ด:
<?php 
function dynRoot() 

  
$levels substr_count($_SERVER['PHP_SELF'],"/"); 

  for (
$i=0$i $levels 1$i++) 
  { 
    
$relativeDir .= "../"
  } 

  return 
$relativeDir
}    
?>


วันนี้ไปค้นข้อมูลเพิ่มเติมได้แบบนี้มา ง่ายดีเหมือนกัน Wink

บันทึกการเข้า

kongtoonarmy
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #11 เมื่อ: 29 กรกฎาคม 2009, 09:35:25 »

ตัว regular expression ที่เขียนมา

มันจะได้ path ตาม url เช่น http://localhost/project1

ยกตัวอย่าง

เวลา include มันใช้ include "http://localhost/project1/file1.inc.php "; ไม่ได้ไ่ม่ใช่เหรอครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์