1

URLを使用して現在のタブを強調表示したい

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$gallerypageurl="http://www.domain.com/gallery/"; 
if ($gallerypageurl==$url){ echo "selected"; }else { echo "";} 

これにより、URL がhttp://www.domain.com/gallery/の場合にギャラリー タブが強調表示されます が、私のギャラリーにはページネーションがあるため、2 番目のページに移動すると URL はhttp://www.domain.com/になります。ギャラリー/2/ .

$url ( http://www.domain.com/gallery/2/ ) が $gallerypageurl ( http://www.domain.com/gallery/ )と等しくないため、現在のギャラリー タブは強調表示されません。

ページ番号/2/または/3/なしでページURLのみを抽出するにはどうすればよいですか

4

4 に答える 4

1

使用できます(たとえば...)stristr

if (stristr($url, $gallerypageurl) !== false)
{
  // $gallerypageurl was found in $url
  echo "selected";
}
于 2012-10-11T15:51:27.707 に答える
1

あなたはそれを行うことができます

if (strpos($url, $gallerypageurl) !== false) {
    echo 'selected';
}
于 2012-10-11T15:53:33.220 に答える
0

爆発関数を使用してリクエスト uri を配列に分割し、配列キーが必要なものであることを確認します。

    $uri = 'http://www.domain.com/gallery/2';
    $parts = explode('/', $uri);
    echo 'gallery' === $parts[3] ? 'selected' : '';

前に 2 回呼び出して、ドメイン名とドメイン名array_shiftをスキップし、配列に 1 からインデックスを付けます。http

ところで、$_SERVERさらに処理する前にキーをサニタイズする必要があります。

于 2012-10-11T15:59:14.770 に答える
0

この関数は、セクションの名前が URL パスの最初のセグメントにある場合にのみ機能します。

function inSection($section, $url)
{
    $path = parse_url($url, PHP_URL_PATH);
    if(preg_match('@^/([^/]+)/?@', $path, $matches)) {
        return $matches[1] === $section;
    }
    return false;
}

echo inSection('gallery', 'http://www.domain.com/gallery/2/')
     ? 'selected' : '';
于 2012-10-11T15:57:46.233 に答える