phpのバージョンは、5.1.6で、OSのバージョンはCentOS4.4です。

お聞きしたいのですが、
$_SERVER["HTTP_HOST"]と$_SERVER["SERVER_NAME"]の違い(というか意味合い)はなんでしょうか?

phpinfoでみても、同じの場合したことがみたことがないもので。

ご存じの方いらっしゃいましたら、お教えいただければ幸いです。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

$_SERVERはサーバーの環境変数やPHPの情報を保存した配列です。


$_SERVERのうち、環境変数はgetenv()でも取得できます。

$_SERVER["SERVER_NAME"]で取得できる名前は
Apacheの場合はhttpd.confで、
UseCanonicalNameがOnになっているときに、ServerNameで指定された値が使われます。
UseCanonicalNameがOffになっていると、ドメイン名やIPアドレスになります。
UseCanonicalNameがOffになっていて、http://127.0.0.1:8001/のようにポート指定でアクセスした場合は、ポート番号は除かれます。

HTTP_HOSTはHTTPでアクセスしたときのホスト名、つまりドメイン名+ポート番号がそれに当たります。
(厳密には違うかも知れませんが、、、)
http://www.ietf.org/rfc/rfc2616.txt

VirtualHostを使ってポート指定でアクセスすると違いが出ますが、
デフォルトでUseCanonicalNameはOffになっていますし、ホスティングサービスではOnにする理由もありません。
http://httpd.apache.org/docs/2.0/ja/mod/core.htm …
(「これが有用な場合の例は、」の段落参照。主にイントラネット向け?)

、、、と書くのはいいとして、私自身、UseCanonicalNameやホスト名の意味や使い方をわかっていません。
こうすれば違いが出るということだけですが、
ご参考まで。
    • good
    • 1

$_SERVERとはhttpサーバーの環境変数です


なのでPHPは直接は関係ありません。

HTTP_HOSTはブラウザからリクエストされた名前で
SERVER_NAMEはサーバー側が自分で持っている名前です。
HTTP_HOSTがないような場合はSERVER_NAMEは自分で持っている
名前をブラウザに返すようでおもにCGIなどに利用されます。

設定によっては別の名前を返しますが、ほとんどの場合
SERVER_NAMEはHTTP_HOSTと同値になるようですね
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q"Full Sentence" videos are always o

"Full Sentence" videos are always out-pulling outline-style videos.
とはどういう意味ですか?日本語訳例も教えてください。推測でも助かります。

Aベストアンサー

“Full Sentence" videos are always out-pulling outline-style videos.


完全訳文付きのビデオ(教材?)の方が,常に簡略訳文(付き)よりも遙かに人気がある(よく売れている、売り上げではダントツである)。

Q$_SERVER["HTTP_HOST"]と、$_SEVER["DOCUMENT_ROOT"]の違いは?

PHP初心者で勉強中です。
書籍にて勉強をすすめていますが、
そもそも・・・と思い質問させていただきます。

$_SERVER["HTTP_HOST"]と,$SERVER["DOCUMENT_ROOT"]の違いは?

といいますか、
どういった場合にどう使いわけてらいいのでしょうか?

HTTP_HOSTのほうは、その使用例として
例えば
$url = "http://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]) . "/******.php";
といった場合につうかうそうですが、

DOCUMENT_ROOTの方は、以下のようなSmartyのテンプレート格納ディレクトリの変更の際に使うようです。(書籍の一部を抜粋しました。)
define("ROOT_DIR",$_SERVER['DOCUMENT_ROOT']."/..");
require_once("Smarty.class.php");
class MySmarty extends Smarty {
function MySmarty (){
$this->template_dir = ROOT_DIR."/templates";
$this->compile_dir = ROOT_DIR."/templates_c";
         ・
         ・
         ・

とても基本的な質問になっていると思いますが、
二つの違いだけでもご教授くださいませ。
宜しくお願いします。

PHP初心者で勉強中です。
書籍にて勉強をすすめていますが、
そもそも・・・と思い質問させていただきます。

$_SERVER["HTTP_HOST"]と,$SERVER["DOCUMENT_ROOT"]の違いは?

といいますか、
どういった場合にどう使いわけてらいいのでしょうか?

HTTP_HOSTのほうは、その使用例として
例えば
$url = "http://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]) . "/******.php";
といった場合につうかうそうですが、

DOCUMENT_ROOTの方は、以下のようなSmartyのテンプレート格納...続きを読む

Aベストアンサー

ANo.2です。

$_SERVER["DOCUMENT_ROOT"]の方、ちゃんと出力しましたか?
末尾に..がついてるのは定数ROOT_DIRの方だと思いますが。
ドキュメントルートはWeb上でのルートディレクトリを指します。これ以下のディレクトリやファイルはWeb上に公開することができます。

ところで、ROOT_DIRを..を連結して定義しているのは単にtemplatesディレクトリやtemplates_cディレクトリをC:\xampp直下に置きたかっただけでしょう。前述したようにドキュメントルート以下にあると普通にブラウザからアクセスできてしまいますからそれを避ける目的があるのだと思われます。

$_SERVER["HTTP_HOST"]はくどいようですがホスト名です。
http://www.weblio.jp/content/%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D

どうもサーバ内部のパスとURLを混同しているように見受けられるのでそれを理解するのが近道かと思います。

Qvideos being watched ... 分詞の後置修飾?

英語版Youtubeのトップページにビデオを紹介するコーナーとして
Videos being watched right now 
とありますが、
質問(1)この「being watched right now」は分詞の後置修飾であると解すべきか、それとも、Videosが動名詞being watchedの主語である
とするのか、わかりません。

ここで分詞の後置修飾であるとすると、疑問が浮かびます。
「being」の存在とその意味です。
本来、他動詞を過去分詞にすることによって受動態のニュアンスがでる
ので
質問(2)「being」を抜いた Videos watched right now でも良いと思うのですが、問題はあるのでしょうか。
(そもそも、分詞の後置修飾でbeing done はありえない と思っています)

お願いします。

Aベストアンサー

これは、後置修飾という説明でもいいのかもしれませんが、一般に新聞の見出しやタイトルなどに見られる文体で、名詞(主語)の後にくるbe動詞を省略した形だと考えるのがより自然だと思います。

例えば、http://club.japantimes.co.jp/special/jt/ の真ん中よりやや下にある「英字新聞を読み解くポイントとなる見出しのルール」の3、「be動詞は省略」にあるとおりです。

つまり、件の場合、Videos are being watched right now. の見出しヴァージョンだと思います。日本語ですと、「ヴィデオ放映中」とか、「視聴可能ヴィデオ」ぐらいはどうでしょう。 

Beingの意味についてはご回答#1の方もおっしゃっているように、現在進行形の受け身ですね。

Q$_SERVER['SCRIPT_NAME']についての質問

PHPに関しては先週から勉強し始めている初心者です。

先日、簡単なパンくずリストを自動生成するスクリプトを作ろうと思いました。その際このスクリプトは外部ファイルにして、includeしようと思ったのですが、 $_SERVER['SCRIPT_NAME']; で現在実行しているスクリプトのファイル名を取得する場合は、includeをしたスクリプトのファイル名ではなく、パンくずリスト自身のファイル名を取得されてしまいます。

なので、スクリプト内の $name=$_SERVER['SCRIPT_NAME']; という部分だけを取り出して、ページ内に直接記述し、includeする際に、 include"http://exampleeee.com/pankuzu.php?name=$name"; として動作させています。

しかし、個人サイトとはいえ、非常に規模の大きいサイトになる予定なので、後での管理などが大変になるかもしれません。できれば $_SERVER['SCRIPT_NAME']; の部分も外部ファイルに入れておきたいのですが、何か良い方法があればアドバイスをお願いします。

あと、最後にもうひとつ質問があります。
include"http://exampleeee.com/pankuzu.php?name=$name";
のように変数を渡す場合、配列を渡すことはできないのでしょうか?

以上が私の質問です。文章中に誤った表現や、誤解などがあればご指摘願います。
よろしくお願いします。

PHPに関しては先週から勉強し始めている初心者です。

先日、簡単なパンくずリストを自動生成するスクリプトを作ろうと思いました。その際このスクリプトは外部ファイルにして、includeしようと思ったのですが、 $_SERVER['SCRIPT_NAME']; で現在実行しているスクリプトのファイル名を取得する場合は、includeをしたスクリプトのファイル名ではなく、パンくずリスト自身のファイル名を取得されてしまいます。

なので、スクリプト内の $name=$_SERVER['SCRIPT_NAME']; という部分だけを取り出して、ページ内に...続きを読む

Aベストアンサー

同ドメイン下でhttpで取り込むのはイマイチに思います。
例えば、init.php で汎用クラス等を読み込むようにしておく。
-- init.php
include 'pankuzu.php';

-- pankuzu.php
function get_pankuzu() {
 return 'TOP > 商品紹介';
}

-- page01.php
<?php include '/path/to/init.php' ?>
<?php echo get_pathkuzu() ?>

ややトリッキーですが、自動で init.php を読み込む設定もあります。
-- .htaccess
php_value auto_prepend_file "/path/to/init.php"
こうすれば echo get_pathkuzu() の記述だけで実装できます。

include 関数についてはマニュアルに詳しく載っていました。

参考URL:http://jp2.php.net/include/

QMusic Videos

LANUCHみたくMusic Videos を見れるサイトはないですか。

Aベストアンサー

Music Videos、私も好きです。
列挙します。
http://windowsmedia.com/mg/home.asp?
http://entertainment.msn.com/Music/
http://channels.netscape.com/ns/music/ch/songs.jsp
http://home.real.com/
http://www.apple.com/quicktime/whatson/
http://www.microsoft.com/japan/windows/windowsmedia/9series/super9/default.asp

Q

でホスト名が得られない場合は
どのようにすればホスト名が得られるのでしょうか?

Aベストアンサー

<?
$host = gethostbyaddr(getenv("REMOTE_ADDR"));
echo $host;
?>

QMy Videosへのアクセスが拒否されてしまいます。

DVDをPSPで見るための動画へ変換しようとPSP変換君FEというツールを
使おうとするとエラーが発生します。

エラー内容
パス C:¥Users¥○○○○¥Documents¥My Videosへのアクセスが拒否されました。

とでます。おそらくVistaのセキュリティ関係のことだと思うのですが、設定をどう変えればいいのでしょうか?
よろしくお願いします。

Aベストアンサー

作者のブログによると、Vistaには対応してないようです。

参考URL:http://timamu.blog83.fc2.com/blog-entry-131.html

Qローカルで$_SERVER['SCRIPT_NAME']を使う場合の疑問

ローカルでPHPを動かす時、http://localhost/ファイル名 という感じになっています。
でも私は、複数のサイトを運営しているので、localhost/サイト名/ファイル名 という状態になっています。

サーバーで $_SERVER['SCRIPT_NAME'] を使って情報を取得した場合と、ローカルで $_SERVER['SCRIPT_NAME'] を使って情報を取得した場合では、取得できる情報が違います。

この場合、どのようにして制作を進めて良いのかわかりません。
私としては、まずはローカルで動作確認をしてから、サーバーにアップロードするという方法を取りたいと思っています。

アドバイスよろしくお願いします。

Aベストアンサー

私もPHPを学習中のため、不正確だったら申し訳ないです。
$_SERVER['SCRIPT_NAME']で取得できる情報はスクリプトまでのパスなので

<?php
echo $_SERVER['SCRIPT_NAME'];
?>

で表示される情報は環境によって違います。
ローカル上であっても、サーバ上でも、取得できる情報はその環境での「スクリプトまでのパス」なので、そのスクリプト自身を指定する場合に$_SERVER['SCRIPT_NAME']でを指定するのであれば特に問題はないかと思います。

QI love seeing videos and pictures like these in my

I love seeing videos and pictures like these in my feed.

の翻訳お願いします(T_T)

それと 私は今とても幸せって英語でなんて言いますか?お願いします(๐ ›ㅅ‹ ๐)

Aベストアンサー

自分のニュースフィードで、こんなビデオや画像を見るのがとっても好き。

>私は今とても幸せ
I am very happy now.

Q$_SERVER['HTTP_USER_AGENT'] で取得できる値の読み方

 PHPに限った話でもないんですが・・・。
 $_SERVER['HTTP_USER_AGENT'] で取得できる値の読み方を教えてください。

IE
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

NN
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

Opera
Opera/9.01 (Windows NT 5.1; U; ja)

 compatibleとか、Gecko/20030624とか、それぞれ、どのような意味を持っているのでしょうか?

Aベストアンサー

完全に理解しているわけではないので、間違っているかもしれませんが…。

> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
MSIE 6.0 = Microsoft Internet Explorer 6.0
Windows NT 5.1 = Windows XP

> Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Windows NT 5.1 = Windows XP
U = 強化セキュリティーバージョン
Netscape/7.1 = Netscape Navigator 7.1
ja-JP = 日本語のユーザーエージェント

> Opera/9.01 (Windows NT 5.1; U; ja)
Opera/9.01 = Opera 9.01
Windows NT 5.1 = Windows XP
U = 強化セキュリティーバージョン
ja = 日本語のユーザーエージェント

ちなみに、IEコンポーネント,GeckoコンポーネントのWebブラウザは括弧の後ろにブラウザ名を挿入するので、注意してください。
以下は、Sleipnirの例です。

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Sleipnir/2.21


user-agentの(バージョン)文字列
http://www.mozilla-japan.org/build/revised-user-agent-strings.html

参考URL:http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88

完全に理解しているわけではないので、間違っているかもしれませんが…。

> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
MSIE 6.0 = Microsoft Internet Explorer 6.0
Windows NT 5.1 = Windows XP

> Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Windows NT 5.1 = Windows XP
U = 強化セキュリティーバージョン
Netscape/7.1 = Netscape Navigator 7.1
ja-JP = 日本語のユーザーエージェント
...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報