PHPでのURL取得とブックマーク方法

このQ&Aのポイント
  • PHPを使用して特定のURLを取得する方法とは?
  • PHPでブックマーク機能を実装する方法について教えてください。
  • 現在のページURLを取得するための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
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.1

>この状態をブックマークさせる方法は~ クエリを変えて異なるURLとするしかありません。なので hoge.php => ランダムに決定 => その状態を取得 ではなく クエリ有りなら表示、無しならランダム決定 => クエリ付きで飛ばす にすればよいかと。 であれば、ブックマークかつ$_SERVER["REQUEST_URI"]で取得できます。 <?php //ページを配列に $pages = array("A.html","B.html","C.html"); //もし$_GET[page]指定なし、もしくは$pagesにない不正な値ならランダムに選択してクエリ付きに飛ばす if(!in_array($_GET[page],$pages)){ $page = $pages[ array_rand($pages) ]; $url = "http://".$_SERVER["HTTP_HOST"]. $_SERVER["REQUEST_URI"]."&page=$page"; header("Location: $url"); exit; } //以下指定ありの場合なので hoge.phpの普通の処理 echo "iframeのtargetは $_GET[page] <br>"; ?> ※hoge.phpのできるだけ上の方、少なくともheaderや文字を出力する前でないと header("Location: ~)は効きません。

yubisack
質問者

お礼

お返事大変遅くなり、誠に申し訳ございません。。 ルーターのトラブルでネット接続が暫く不通でしたm(_ _)m >クエリを変えて異なるURLとするしかありません。 なるほど、やはりこういった細工をしないと無理なんですね。 大変ご丁寧にPHPソースまで記述いただきありがとうございました! 早速試してみたいと思います♪

関連するQ&A

  • 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
  • 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
  • はてなブックマーク件数取得APIをPHPで使うには

    はてなブックマーク件数取得API http://developer.hatena.ne.jp/ja/documents/bookmark/apis/getcount 上記のページを見て、 http://api.b.st-hatena.com/entry.count?url=[ブックマーク数を取得したいURL] でブックマーク件数が取得できることが分かったのですが、 このブックマーク件数をPHPの変数に入れるには一体どうすればいいのでしょうか。 例えば、変数 $num に int型で指定URLのブックマーク数を入れるようなことがしたいのですが…。

    • ベストアンサー
    • PHP
  • 遷移前のページのクエリを取得したい

    PHPについての質問です。 ブラウザに、 ttp://hogehoge.com/hoge1.php?hoge=moge というページを表示している状態で、そのページ内のリンクをクリックし、そのリンク先は、 ttp://hogehoge.com/hoge2.php というページだとして、この hoge2.php で直前のページ(hoge1.php)の「hoge=moge」という情報を取得したいです。 $_SERVER["QUERY_STRING"] で現在のページのクエリを取得できますよね。 また、 $_SERVER["HTTP_REFERER"] で遷移してくる前のページのアドレスを取得できますよね。 こういう感じで、遷移してくる前のページのクエリを取得する方法はありますか? cookieとかを使うしかないのでしょうか?

    • 締切済み
    • PHP
  • referer取得について

    ブログパーツを作成中です。 どこに設置されているか調べたいのでリファラを取っても期待通りの結果になりません。 パーツ設置側 <script src="hoge.js"></script> サーバ側 ・hoge.js document.write('<iframe src='disp.php'></iframe>); ・disp.php <?php> echo $_SERVER["HTTP_REFERER"]; </php> これだとREFERERには disp.php が格納されてしまいます。 ブログパーツを設置しているブログのURLを取りたいのですがどのようにしたら良いのでしょうか?

    • ベストアンサー
    • PHP
  • phpについて

    すみません。 echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; こちらのコードの意味はわかるのですが emptyに?がついている意味がわかりません。教えて下さい。 これを解説してあるページとか検索用語などでも構いません。よろしくお願いします。

    • ベストアンサー
    • PHP
  • URLに「.html」の拡張子がなくても表示される

    URLに「.html」の拡張子がなくても表示される。 よろしくお願いします。 例えば、下記のようなURLがあり、(A)の場合でも(B)の場合でもページが表示されてしまいます。 同じレンタルサーバーを利用しているサイトで確認したのですが、 htmlがなければ、表示されていません。従いまして、サーバーの機能ではないと思います。 A)http://www.hoge.co.jp/hoge.html B)http://www.hoge.co.jp/hoge ※動的なページではなく、HTMLファイルをアップするだけの静的なページです ※hogeページはindexページではありません 最近、下記のような「.htaccess」を作成、アップしたからかと思い、 .htaccessを削除したものの、変化はありませんでした。 --------------------------------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} ^hoge\.com RewriteRule ^(.*)$ http://www.hoge.com/$1 [R=301,L] ErrorDocument 404 /error.html --------------------------------------------------- 通常のように「.html」の拡張子がなければ表示されない というようにしたく思います。 この件につきましてご教授いただけますと幸いです。

    • ベストアンサー
    • HTML
  • IFRAME内PHPのセッション変数取得が出来ない

    既存のHTMLサイトに一部機能追加したいだけ+ブラウザに表示されるURLの関係で、必要部分だけIFRAMEでPHPサーバーのファイルを呼び出して表示させようと考えました。 IFRAMEを記述するHTMLファイル設置サーバーはPHPが使用出来ません。 <iframe src="http://hogehoge/login.php"></iframe> とHTML内にログイン用PHPを表示させ、ボタン押下でログイン判定 →データをセッション変数にセット →header("Location: http://hogehoge/form.php");で画面遷移 →フォーム用PHPに先ほどセットしたセッションデータ表示 とこんな感じの処理がしたいのですが、これがFireFoxだとうまく動くのに、IEだと動いたり動かなかったりします。(動く=開発環境である私のPC、動かない=他全て) ボタン押下で自分自身にPOSTしたデータは正しく受け取って画面遷移まで処理しているのですが、遷移後のページでセッション取得しようとすると取得出来ないようなのです。 IFRAMEを通さず直接URL叩いた場合は、FF・IEどちらも正常に動いています。 session_name('hoge'); session_start(); はPHP先頭に記載してあります。 IFRAMEを使用して外部サーバーのPHPを使用する際に、気をつけねばならない事などがあるのでしょうか… もし解決方法に思い当たる方がいらっしゃいましたら、どうかご回答宜しくお願いいたします。 またもし補足等必要でしたらご指摘下さい。

    • ベストアンサー
    • PHP
  • 【PHP】ひとつ前のURLを常時得る方法は?

    レンタルのPHP5使用者です。 自分が作ったサイト内リンクだけでの話なのですが、ひとつ前に見たページが何かによって処理を分岐させたいことがあります。 はじめは $_SERVER[HTTP_REFERER] を見ればOK!と考えていたのですが、リダイレクト遷移の場合は取得不可能なことがわかりました。 では一体どうすれば… 3時間ほど考えた結果は以下の通りです。 $_GET[ ] 使用 → 値を容易に改ざんされるので×。 $_POST[ ] 使用 → $_SERVER[HTTP_REFERER]同様リダイレクト時に無理。 SESSION 使用 → 直前のURLとは限らない(直前が、静的ページ/リダイレクト/ブックマーク の場合さらに古いURLを得てしまう) Cookie  使用 → 同上 <条件> *停止させている方も多いため、勝手ながら今回javascriptは使わないことを前提にさせてください。 *直前が静的ページ/ブックマーク等なら値なしでOKです。 一見簡単そうに見えた問題があまりに難しいので悩みました。「あきらめろ」という回答でもOKです。よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpでのURL取得について

    phpにて、ソース内のURLを取得するプログラムを作っています。 その中に短縮URLが混ざっており、取得しても例えば“http://tinyurl.com/?aaa”のような形になってしまいます。 この“http://tinyurl.com/?aaa”が“http://www.yahoo.co.jp/index.html”の短縮URLなら“http://www.yahoo.co.jp/index.html”の形で取得したいのですが、phpで可能でしょうか?

専門家に質問してみよう