• ベストアンサー

ハッシュマーク以降のアドレス取得

PHPで自身のURLのうちハッシュマーク以降を取得できません。 $_SERVER["REQUEST_URI"]でもハッシュマーク以降は無視されてしまいます。 どうやらサーバ変数では読み取れないようです。 何か他に方法はないでしょうか。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

そもそもサーバー側に送られてきていませんからPHPだけでは無理です JavaScriptからlocation.hashを送ってもらうなどの工夫が必要です

AXRRXA
質問者

お礼

ありがとうございます。早速試してみます!

関連するQ&A

  • 「/」以降の取得について

    http://localhost/php/param.php/test 上の様なURL上から、「/」以降の文字の取得をしたいです。 以下の様に作成しましたが、実行結果、何も表示されません。 <?php $file = basename($_SERVER["PHP_SELF"]); $url = "http://" . $_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI']; preg_match("/".$file."\/(.+$)/",$url,$match); $get = $match[1]; print $get; ?> 記述ミスでしょうか? 困っています。教えて下さい。

    • ベストアンサー
    • PHP
  • PHPでのURL取得とブックマークについて

    お世話様になります。 現在[hoge.php]ページ内の<iframe>タグに[.html]ページをPHPプログラムでランダムに読み込んでいます。 (例)、 [hoge.php]に[A.html]が読み込まれた [hoge.php]に[B.html]が読み込まれた [hoge.php]に[C.html]が読み込まれた つまり上記の様になりますが、例えば『[hoge.php]に[B.html]が読み込まれた』という状態をPHPを使ってURL取得するにはどの様なプログラムを書けば宜しいでしょうか?また、この状態をブックマークさせる方法は有るでしょうか? 一応、今は現在のページURLを取得する方法として <? print("http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); ?> という記述のみ使っています。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • dnsによるアドレス取得

    URIからのアドレス取得で、問い合わせDNSサーバを指定してのdns_get_recordに相当することをPHPで行なうことはできるでしょうか?

    • 締切済み
    • PHP
  • empty($_SERVER['REQUEST_U

    empty($_SERVER['REQUEST_URI'])とは、何のことでしょうか? 下記スクリプトの意味について教えてください。 // // Fix unavailable $_SERVER['REQUEST_URI'] on IIS // if ( empty($_SERVER['REQUEST_URI']) ) {  $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];  $_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : ''; } ▼if ( empty($_SERVER['REQUEST_URI']) ) { $_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。 ページにアクセスするためのURIを指定しなかったら? それは、どんな状況なのでしょうか? ▼$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF']; $_SERVER['REQUEST_URI']に、現在実行しているスクリプトのファイル名を利用。これは、何をしているのでしょうか? ▼$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : ''; クエリ情報(URLの"?"以降の文字列)が空でなければ、クエリ情報をくっつける。空だったら、くっつけない 結局、このスクリプトでは何をしようとしているのでしょうか? また、このスクリプトがないと、どういう不具合が起きる可能性があると、想定されるでしょうか? 検索してみたら、下記のようなページがあったのですが、 IIS(サーバ?)固有の不具合回避対策なのでしょうか? ▽Dokeos Forum • View topic - IIS $_SERVER['REQUEST_URI']   http://www.dokeos.com/forum/viewtopic.php?t=8335

    • ベストアンサー
    • PHP
  • htmlにコードを貼り、リファラーを取得したい

    外部のhtmlページに以下のコードを貼り付け、リファラーとアクセスページを取得しようと思っているのですが、うまくいきません。 ▼ htmlページに貼り付けたコード(外部サーバ) <script type="text/javascript" src="http://example.com/script.php"></script> ▼ script.php の 中身(自サーバ) $access_url= 'http://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; $referer_url = $_SERVER["HTTP_REFERER"]; [現在の状態] $access_url の中身 = http://自サーバのドメイン/script.php $referer_url の中身 = http://コードを貼り付けたページ 色々と試行錯誤してこの形になったのですが、完全に行き詰ってしまいました。 方向性だけでも良いので、どなたかご教授いただけませんでしょうか。 よろしくお願いいたしますm( _ _ )m

    • ベストアンサー
    • PHP
  • phpでURLから「?」を省略する事は可能ですか?

    phpでURLから「?」を省略する事は可能ですか? 例えば exampe.com?key=value は $_GET["key"] で取得していましたが exampe.com/value を$_SERVER['REQUEST_URI']でvalueを取得するようにしたいです

    • 締切済み
    • PHP
  • mod_rewrite的なことをphpで実現させたいが空白ページが表示されてしまう

    www.example.com/ほげほげ にアクセスされたら、 example.com/ほげほげ へ urlをかきかえ、 さらに、 $_SERVER["REQUEST_URI"] がスラッシュで終わる(2個以上のスラッシュも考慮)ときは、これらのスラッシュをとりのぞいたurlへかきかえ、 そして、このurlへ301ステータスコードでリダイレクトさせる(ただし、get methodの場合に限る) というコードをphpで書いたのですが、 なぜか、urlは書き換わらず、空白のページが表示されてしまいます。 どこがいけないのでしょうか? お助けくださいませ。         if ($_SERVER["REQUEST_METHOD"] == "GET"){             #HTTP_HOST (exclude www.)             preg_match_all("/^(www\.)(.*)$/", $_SERVER["HTTP_HOST"],$matches_HTTP_HOST);             if ($matches_HTTP_HOST[1] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_HTTP_HOST = $matches_HTTP_HOST[2];             }             else{                 $strAfterRedirect_HTTP_HOST = $_SERVER["HTTP_HOST"]             }             #REQUEST_URI (,which includes query string)             preg_match_all("/^(\/)(.*)(\/+)$/", $_SERVER["REQUEST_URI"],$matches_REQUEST_URI);             if ($matches_REQUEST_URI[3] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_Request_URI = $matches_REQUEST_URI[1] . $matches_REQUEST_URI[2];             }             else{                 $strAfterRedirect_Request_URI = $_SERVER["REQUEST_URI"];             }             #redirect with 301 status code if needed             if($bWillBeRedirected){                 #Protocol                 if ($_SERVER["HTTPS"] == "on"){                     $strProtocol = "https";                 }                 else{                     $strProtocol = "http";                 }                 $url = $strProtocol . "://" . $strAfterRedirect_HTTP_HOST . $strAfterRedirect_Request_URI;                                                   header("HTTP/1.1 301 Moved Permanently");                 hearder(”Location: “.$url);                 header(”Connection: close”);             }         }

    • ベストアンサー
    • PHP
  • ハッシュのリファレンスを戻り値にしたい

    PHPでハッシュのリファレンスを戻り値にする方法が知りたいです。 perlでは return \%hash; ですが、phpではどうなるのでしょうか? 他に別の方法があるのでしたらそれでも構いません。

    • ベストアンサー
    • PHP
  • クエリ文字列が取得できない

    以下のようなプログラムを作りました。 test.php -------------- <HTML><BODY> <?php echo($_REQUEST["n"]); ?> </BODY></HTML> -------------- それで http://(省略)/test.php?n=5 とURLをいれて Query Stringから5を取得させて表示させたいのですが ローカルでのテスト(Apache/1.3.27)はうまくいくのですが サーバーにアップロードすると何も表示されません。 他のPHPのプログラムは動くのですが、どうもこの$_REQUEST["n"];の部分がうまくいっていないようです。 プログラムのミスか、設定のミスか、考えられる対処法を教えていただけないでしょうか? 環境 PHP 4.2.2 サーバー:レンタルサーバー(1-man.net) (phpは使えるサーバーです) Dreamweaver MX

    • ベストアンサー
    • PHP
  • Apacheで404エラーが発生した時、メールを送信したい

    ハッスルサーバをレンタルしてphpでサイトを作っている者です。 404エラーが発生した際に、err.phpというページに飛び、さらにerr.php内で404エラーを起こしたアドレスを書いたメールを自分のアドレスに送りたいと思っています。 .htaccessを設定してerr.phpを表示させるところまではうまくいきましたが、エラーを起こしたアドレスをどうやって取得すればいいかがわかりません。 例えば変数 $_SERVER['REQUEST_URI'] だとerr.phpが返されるので意味がありません。 よろしくお願いします。 (※この質問はyahoo知恵袋にもしたのですが、レスポンスがないのでこちらにも投稿しました)

    • ベストアンサー
    • PHP

専門家に質問してみよう