0

PHP を使用して現在のアイテムにクラスを追加しようとしています。次のような静的ナビゲーションがあります。

<ul id="myList">
  <li><a href="page1.php">Page One</a></li>
  <li><a href="page2.php">Page Two</a></li>
  <li><a href="page3.php">Page Three</a></li>
</ul>

私が従いたいロジックは次のとおりです。

  1. URL を取得して最後のセクションを取得し、$path変数に格納します。
  2. myList一致する SRC 属性を持つリンクを内部から見つけます$path
  3. .currentのクラスを属性に追加します。

私はすでにこれでポイント1をソートしました:

$path = basename( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) );

しかし、私は PHP を初めて使用するので、ポイント 2 と 3 についてどうすればよいかわかりません。助けてください!

4

2 に答える 2

0

それを行う「安価な」方法は次のとおりです。

// assuming $html is your code
$html = str_replace($path,$path.'" class="current',$html);

適切な方法は、HTML パーサーを使用することです。

正しい方法は、ソースを生成するときに最初に配置することです。

于 2013-03-31T00:17:34.610 に答える
0

「静的」ナビゲーションを動的なものに更新するだけです。

$links = array(
    array('link' => 'page1.php', 'text' => 'Page One'),
    array('link' => 'page2.php', 'text' => 'Page Two'),
    array('link' => 'page3.php', 'text' => 'Page Three')
);
$path = basename( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) );
echo '<ul id="myList">'
foreach ($links as $link) {
    $class = '';
    if ($link['link'] == $path) {
        $class = 'current';
    }
    echo "<li><a href=\"$link[link]\" class=\"$class\">$link[text]</a></li>";
}
echo "</ul>";

この状況は、実際には PHP が最初に設計されたものです。上記が少し見にくい場合は、テンプレート システムの使用を検討することをお勧めします。人気のある成熟したものがたくさんあります。

于 2013-03-31T00:21:46.013 に答える