ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: maidai ที่ 06 สิงหาคม 2008, 14:54:02



หัวข้อ: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: maidai ที่ 06 สิงหาคม 2008, 14:54:02
คือผมขี้เกียจเข้าไปแก้ใน folder ที่มีไฟล์อยู่ เวลาจะ include

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

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

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


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: EThaiZone ที่ 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");

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


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: maidai ที่ 06 สิงหาคม 2008, 15:22:49
ขอบคุณ โจ้มากครับ  :'( ซี๊ดดด


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: ITAXIz ที่ 06 สิงหาคม 2008, 16:19:29
แจ่มมม

 ::)


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: Learn to SEO ที่ 06 สิงหาคม 2008, 16:36:07
ขอบคุณด้วยคน ครับ แอบเอาไปใช้ละ


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: ball6847 ที่ 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
ผมก็ยังไม่ค่ยได้เหมือนกัน

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


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: odido ที่ 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");

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


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



หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: EThaiZone ที่ 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']);

 :P


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: pugkung ที่ 06 สิงหาคม 2008, 21:27:09
เอ่อ ผมขอถามต่อได้ไหม ไหน ๆ ก็เรื่อง เดียวกัน

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


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: EThaiZone ที่ 06 สิงหาคม 2008, 22:38:36
เอ่อ ผมขอถามต่อได้ไหม ไหน ๆ ก็เรื่อง เดียวกัน

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

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

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


หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: maidai ที่ 07 สิงหาคม 2008, 13:35:32
โค๊ด:
<?php 
function dynRoot() 

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

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

  return 
$relativeDir
}    
?>


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



หัวข้อ: Re: [PHP มือใหม่] มี code php อะไรไหมครับที่จะบอก path ของเรา
เริ่มหัวข้อโดย: kongtoonarmy ที่ 29 กรกฎาคม 2009, 09:35:25
ตัว regular expression ที่เขียนมา

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

ยกตัวอย่าง

เวลา include มันใช้ include "http://localhost/project1/file1.inc.php"; ไม่ได้ไ่ม่ใช่เหรอครับ