สำหรับตัวอย่างนี้ก็ง่ายมากครับผมสร้าง code อย่างในกรอบนี้แล้วนำไปแทรกลงในไฟล์ที่เราจะเรียกใช้ มันก็จะคายผลออกมาเป็น path ในรูปแบบต่างๆให้คุณทราบนั่นเองครับ
<?php
echo "\$_SERVER['PHP_SELF'] : ".$_SERVER['PHP_SELF'] . "<br/>\n";
echo "dirname(\$_SERVER['PHP_SELF']) : ".dirname($_SERVER['PHP_SELF']) . "<br>\n";
echo "back4_wwwroot : ".preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])) . "<br/>\n";
echo "pathof_wwwroot : ".realpath('./' . preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])))."<br/>\n";
$wwwroot = realpath('./' . preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])));
?>
ที่มา : echo "\$_SERVER['PHP_SELF'] : ".$_SERVER['PHP_SELF'] . "<br/>\n";
echo "dirname(\$_SERVER['PHP_SELF']) : ".dirname($_SERVER['PHP_SELF']) . "<br>\n";
echo "back4_wwwroot : ".preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])) . "<br/>\n";
echo "pathof_wwwroot : ".realpath('./' . preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])))."<br/>\n";
$wwwroot = realpath('./' . preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])));
?>
http://www.thaiadmin.org/board/index.php?topic=92711.0
http://www.thaicreate.com/php/forum/053757.html
พอดีอ่านไปอ่านมามีที่ thaiseo แนวคล้ายๆกันนะครับเลยจับมารวมไว้ด้วยกัน
<?php
$reg = "";
$deep = 1; //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<$deep; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg.")$#", "", str_replace("\\", "/", dirname(__FILE__)));
echo "path : ".$path."<br/>";
?>
ที่มา :http://www.thaiseoboard.com/index.php/topic,33976.0.html$reg = "";
$deep = 1; //ระดับความลึกต่างกันของไฟล์
for($o=0; $o<$deep; $o++) $reg .= "/[^/]+";
$path = preg_replace("#(".$reg.")$#", "", str_replace("\\", "/", dirname(__FILE__)));
echo "path : ".$path."<br/>";
?>
สำหรับแบบสุดท้ายนี่ก็จัดว่ามีหลักการง่ายดีครับสร้าง ../ ขึ้นมาให้เท่ากับความลึกของ subdirectory
<?php
function dynRoot(){
$levels = substr_count($_SERVER['PHP_SELF'],"/");
for ($i=0; $i < $levels - 1; $i++){
$relativeDir .= "../";
}
return $relativeDir;
}
$path = dynRoot();
?>
ที่มา : http://www.thaiseoboard.com/index.php/topic,33976.0.htmlfunction dynRoot(){
$levels = substr_count($_SERVER['PHP_SELF'],"/");
for ($i=0; $i < $levels - 1; $i++){
$relativeDir .= "../";
}
return $relativeDir;
}
$path = dynRoot();
?>
แต่เมื่อดูทั้งหมดแล้วหากจะประยุกต์ใช้กับการหา path เพื่อ include ผมแนะนำแบบนี้ครับ ^_^ ไม่อธิบายนะครับเพราะไม่ยาก และเพื่อให้ท่านได้ทบทวนความเข้าใจก่อนนำไปใช้ด้วยครับ
<?php
$dir_root = preg_replace('/\/[^\/]+/','../',dirname($_SERVER['PHP_SELF'])); $dir_include = $dir_root."include/";
include $dir_include."config.inc.php";
...
...
...
?>
จบแล้ว...ไว้เจอกันใหม่ตอนหน้า สวัสดีครับ
#20141125 อัพเดทครับ ไปๆมาๆเจอฟังก์ชั่น
- getcwd();
- dirname(__FILE__);
- dirname($_SERVER['PHP_SELF']);
0 ความคิดเห็น