我試圖通過檢查URL中的最終目錄來檢測用戶正在查看的網站的當前部分。我使用PHP和正則表達式來做到這一點,我想我很接近,但不幸的是還沒有完成。preg_match在URL中查找當前目錄
這是我目前有:
<?php
$url = $_SERVER['REQUEST_URI_PATH'] = preg_replace('/\\?.*/', '', $_SERVER['REQUEST_URI']);
$one = '/one/';
$two = '/three/';
$three = '/three/';
$four = '/four/';
$five = '/five/';
echo $url;
if (substr($_SERVER['REQUEST_URI_PATH'], 0, strlen($one)) == $one) {
// URI path starts with "/one/"
echo "The section is one.";
}
elseif (substr($_SERVER['REQUEST_URI_PATH'], 0, strlen($two)) == $two) {
// URI path starts with "/two/"
echo "The section is two.";
}
elseif (substr($_SERVER['REQUEST_URI_PATH'], 0, strlen($three)) == $three) {
// URI path starts with "/three/"
echo "The section is three.";
}
elseif (substr($_SERVER['REQUEST_URI_PATH'], 0, strlen($four)) == $four) {
// URI path starts with "/four/"
echo "The section is four.";
}
elseif (substr($_SERVER['REQUEST_URI_PATH'], 0, strlen($five)) == $five) {
// URI path starts with "/five/"
echo "The section is five.";
}
?>
我放在回聲$ url的值的if語句只是爲了得到確認之前。這種輸出
/currentdirectory/file.php
但條件本身不匹配任何內容,我的每一個部分單獨回聲永遠不會顯示。
此外,如果有一個更簡單的方法做到這一點,那麼我接受建議。
感謝
做,我看到了'/ currentDirectory所/'不同於'/一個/','/二/'...'/五類/'。這就是沒有人執行if分支的原因。你實際需要什麼? – 2010-05-12 14:27:49
對不起,我可能沒有讓自己清楚。/currentdirectory /旨在表示活動目錄(/ one /,/ two /,/ three /等)。我想要一種方法來檢測哪個活動目錄是,然後採取適當的行動。我設法弄清了這一點,並已複製到下面的替代解決方案。 非常感謝。 – Ian 2010-05-12 15:33:02