スレッド表示 | フラット表示〕 全トピック 920 件中 653 番目 次≫ ≪前

if文でメニュー項目を制御したい

created: 2004-03-22 17:38 | modified: 2004-03-28 11:57 | reply: 7

[1426] if文でメニュー項目を制御したい

user: クローラー | created: 2004-03-22 17:38
はじめまして。私は基本的なWebページの作成がどうにか出来る程度で、
phpを含めてプログラムはまったくの素人です。

質問ですが、具体的にいうと以下の場所に
書いてある事と似たような制御をphpで行う方法を教えていただきたいのです。
ttp://project92.com/~makoto-k/web/header_src.shtml

このページではメニュー項目の管理にSSIを
使っているのですが、私が使っているサーバは制限が掛かっているのか、同じソースが実行できません。
phpは使えるようなので、簡単なif文を使った条件分岐のヒントを教えてください。

例えば現在のページを参照して、それに
よりメニュー部分のアンカータグが有効、無効になったり背景の色が変わったりとか。
(まんまですが…)
どうぞよろしくお願いします。
reply: 1434 返信 編集 削除

[1434] SSI → PHP

user: ゆうじ | created: 2004-03-23 15:23
こんにちは。遅くなりました。

SSIのはじめと終わりはこれですが、
<!--# ・・・ -->

PHPのはじめと終わりはこうなります。
<?php  ・・・  ?>

このタグの外は普通のテキストとしてブラウザに出力されます。
このタグの内側だけがPHPスクリプトとして実行される部分になり、
ここに、if文やinclude命令を書いていきます。

Exp.
<html>
<head>
<?php
include("head.html");
?>
</head>
<body>
<?php
if($_SERVER['SCRIPT_NAME'] == "/hoge.html") {
echo "Menu1<br />";
}
elseif($_SERVER['SCRIPT_NAME'] == "/hoge/index.html") {
echo "Menu2<br />";
}
elseif($_SERVER['SCRIPT_NAME'] == "/hoge2/index.html") {
echo "Menu3<br />";
}
else {
echo "Menu_Default<br />";
}
?>

</body>

適当な例題が思い浮かびませんでした。
こんなんですみません。

詳しくはマニュアルをご覧頂くとして、
http://www.php.net/manual/ja/


PHPの構文からはじめるのでしたら、
まさごさんのサイトがオススメです。

離れPHP島
http://masago.kir.jp/
Parent: 1426  reply: 1436 1437 返信 編集 削除

[1436] ありがとうございます!

user: クローラー | created: 2004-03-23 18:17
ゆうじ様、ご丁寧なお答えありがとう
ございます。
例題を元に簡単なメニュー項目を作ることができました。
これからも時間を作ってまじめに勉強したいと思います。
Parent: 1434  返信 編集 削除

[1437] アンカータグを使うと・・・

user: クローラー | created: 2004-03-24 16:15
すいません。また質問です。テストニューを作り、
任意のページ(home.php)にいる時はリンクしないように
以下のような書き方をしたんですが、
アンカータグを入れた時点でこの部分が消えてしまいます。どうか添削をお願いします。

<table border="1">
<tr>
<td>
<?php
if($_SERVER['SCRIPT_NAME'] == "home.php") { echo "Home"; }
else { echo "<a href="home.php">Home</a><br />"; }
?>
<a href="1.php">page1</a><br>
<a href="2.php">page2</a>
</td>
</tr>
</table>
Parent: 1434  reply: 1438 返信 編集 削除

[1438] 引用符と二重引用符

user: ゆうじ | created: 2004-03-24 17:44
echo "<a href="home.php">Home</a>"


ココのところ、
両端の二重引用符をシングルクォーテーションに直すか、

echo '<a href="home.php">Home</a>'


home.php を挟んでいるダブルクォーテーションの前に
\を入れてエスケープしてあげると解決すると思います。

echo "<a href=\"home.php\">Home</a>"


PHPスクリプトで『 " 』は、
文字列を表現する為の特殊な意味を持つ文字です。

『 " 』で挟んだ文字列の中で、
文字として『 " 』を使いたい場合は、『 \" 』とします。

また、『 ' 』で文字列を表現することが出来ます。
『 ' 』で挟んだ文字列は、『 ' 』以外の文字は全てそのまま出力されますので、
変数の展開やエスケープの必要がないときには、
こちらの方が手間いらずでよいと思います。

# でも『 ' 』を文字として出力したいときは、
# やっぱり『 \' 』とする必要がありますけど。


引用符と二重引用符の違いは、ココ↓
【参考】マニュアル・文字列(わかりづらいかも)http://www.php.net/manual/ja/language.types.string.php
Parent: 1437  reply: 1439 返信 編集 削除

[1439] できました。あと便乗質問ですが。

user: クローラー | created: 2004-03-24 18:09
<?php
if ($_SERVER['SCRIPT_NAME'] == "/test/home.php")

上記の様に、対象となるファイルのディレクトリ表示を
上までさかのぼって表示させたらうまくいきました。どうもありがとうございます。

あと別の質問ですが、下の命令。
include ('test.php');
include ("test.php");
include 'test.php';

さらにincludeの後に半角スペースが無かったり。
どれが正しい表記なのでしょうか?
どれも正しいとすれば、
なぜこんなにバリエーションがあるのでしょうか?
Parent: 1438  reply: 1445 返信 編集 削除

[1445] 番外:書式のバリエーション

user: ゆうじ | created: 2004-03-25 16:01
> if ($_SERVER['SCRIPT_NAME'] == "/test/home.php")

> 上記の様に、対象となるファイルのディレクトリ表示を
> 上までさかのぼって表示させたらうまくい> きました。どうもありがとうございます。

こちらでしたか、失礼しました。



> どれが正しい表記なのでしょうか?
> どれも正しいとすれば、
> なぜこんなにバリエーションがあるのでしょうか?

どの書式も有効のようです。が、
なぜたくさんあるのか考えたことありませんでした。

私なら、
同じことを表現するのに沢山の書き方が出来て、
自由度が高いな?と思います。


#
# > include 'test.php'
#
# うろ覚えなのですが、この書き方に限っては、
# 関数だとエラーになることがあったと思います。
Parent: 1439  reply: 1446 返信 編集 削除

[1446] なるほど

user: クローラー | created: 2004-03-28 11:57
いろんなサイトを見るたびに
書き方が微妙に違うので混乱してました。
自分で気に入った書き方に統一します。
お答えありがとうございます。
Parent: 1445  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 653 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑