0

私は現在、これを使用するウェブサイトを設計しています: <li class="current">.

上記のページにあるときに正しいクラスを出力するスクリプトを取得しましたが、gallery.php?dir=thedir ページでは、クラスの出力に失敗します。

これが私がこれまでに持っているもので、機能していません...

$ispage = preg_match_all('gallery.php/\[(.+?)\]/s');

誰かが私に提供できる情報をいただければ幸いです:)。

完全なコード:

<?php 
$ispage = preg_match_all('gallery.php/\[(.+?)\]/s'); 
$currentpage = $_SERVER['REQUEST_URI']; 
if ($ispage==$currentpage) { 
    echo '<li class="current">'; 
} else { 
    echo '<li>'; 
} 
?><a href="gallery.php">Photos</a></li>
4

6 に答える 6

1

$_SERVER['SCRIPT_NAME'] または $_SERVER['PHP_SELF'] または $_SERVER['REQUEST_URI'] を PHP 関数 strpos($haystack, $findme) と一緒に使用できませんか? それはあなたの人生を楽にするはずです。

http://php.net/manual/en/function.strpos.php

于 2012-05-21T07:50:35.887 に答える
0

あなたの質問を理解した場合、クエリ文字列値にアクセスしようとしています

試す echo $_GET['dir'];

編集これを試しましたか?

$ispage = '/'.basename($_SERVER['PHP_SELF']).'?'.($_SERVER['QUERY_STRING']);
$curepage = $_SERVER['REQUEST_URI'];

問題を解決するには、リンクの配列を定義する必要があると思います

となることによって

$curpage = $_SERVER['REQUEST_URI'];

$links = array('/gallery.php?dir=thedir', '/home.php?dir=anotherdir');

foreach($links as $link) {
   $class = '';

   if($link == $curpage) {
     $class = 'class="current"';

     echo '<li '.$class.'>';
     .... rest of the code .... 
   }
}
于 2012-05-21T07:47:23.200 に答える
0

必要なもののよう$_SERVER['PHP_SELF']です。パラメータなしで相対ファイル名を返します。ここを見てください:http://www.php.net/manual/en/reserved.variables.server.php

于 2012-05-21T07:53:10.157 に答える
0

preg_match_all が int を返すと確信しています。これが完全なコードである場合、まったく機能しません。はい、次のようなものを使用して$_SERVER['PHP_SELF']ください。また、これを回避するために、より良い URL を使用することを検討する必要があります。

于 2012-05-21T07:59:16.527 に答える
0
 <?php

$currentpage = $_SERVER['REQUEST_URI'];; 
preg_match('/[^.]+\.[^.]+$/', $currentpage, $matches);
if ($matches[0] == "/gallery.php?dir=thedir") { 
    echo '<li class="current">'; 
} else { 
    echo '<li>'; 
} 
?><a href="gallery.php">Photos</a></li>
于 2012-05-21T08:04:59.220 に答える
0

URL が次のような場合: www.site.com/page.php?q=foo

それからこれ

$currentpage = basename(__FILE__);

page.phpが表示されます

さらに、このように呼び出す場合:

$currentpage = basename(__FILE__,".php");

ページを表示します

于 2012-05-21T08:19:27.963 に答える