我們可以很容易地沉默的錯誤(見@ John_Conde的答案),但這裏的更大的問題是,你的代碼是沒有意義的。
您出現要嘗試在您的REQUEST_URI中的任意位置查找兩個字符串中的一個。但這不是URI的結構。
下面是您可能意思的嚴格翻譯。然後我會解釋爲什麼它是錯誤的。
function stripos_array($haystack, $needles, $offset=0) {
foreach ($needles as $needle) {
if (FALSE!==stripos($haystack,$needle,$offset)) {
return True;
}
}
return False;
}
$pages = array("random-number-generator", "calculator");
if (stripos_array($_SERVER['REQUEST_URI'], $pages) {
echo 'active';
}
這怎麼可能,不可能有一個正確實施的你在做什麼?看看一些樣品:
stripos_array('/not-a-random-number-generator', $pages) // true!
stripos_array('/some/other/part/of/the/site?searchquery=calculator+page', $pages); // true!
stripos_array('/random-number-generator/calculator', $pages); // true!! but meaningless!!
我強烈懷疑你真正想要做的是使用一些真正 URL路由。這裏有兩種可能性:
使用查詢參數;網址看起來像http://example.org/index.php?page=calculator
if (isset($_GET['page']) && in_array($_GET['page'], $pages)) ....
使用路徑段;網址看起來像http://example.org/index.php/calculator
$path = trim($_SERVER['PATH_INFO'], '/');
$pathsegments = explode('/', $path);
if (isset($pathsegments[0]) && in_array($pathsegments, $pages)) ...
沒錯,但這個代碼也是荒謬的 – 2012-07-05 18:22:08
謝謝你,現在的作品:) – Matty 2012-07-05 18:22:42
@Matty,沒有也。 – 2012-07-05 18:23:07