PHP ハイパーリンクのエンコードについて

このQ&Aのポイント
  • PHPでハイパーリンクをエンコードする方法について調べています。
  • 具体的な使い方や注意点について教えてください。
  • 参考にしたサイトでは日本語がそのまま返ってきてしまいます。
回答を見る
  • ベストアンサー

PHP ハイパーリンクのエンコードについて

PHP ハイパーリンクのエンコードするには、どうしたらいいのでしょうか? <?php $jew = $path."brand/brand.php?keyword=" . urlencode("マグロ").."&sort=".standard;?> <a href="<?= $jew ?>">魚</a> 下記のサイトも参考にしたのですが、日本語がそのまま返ってきてしまいます。 http://nyx.pu1.net/practice/external_var/external_var3.php http://namidameweb.blog62.fc2.com/blog-entry-231.html

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

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>日本語がそのまま返ってきてしまいます。 そう見えるだけでは?ブラウザで「ソース表表示」にして確認されましたか?下記のようになっていると思いますが・・・ <a href="brand/brand.php?keyword=%E3%83%9E%E3%82%B0%E3%83%AD&sort=.standard">魚</a> なお、提示されたソースはエラーになったので下記のソースで確認しました。 <?php $jew = $path . "brand/brand.php?keyword=" . urlencode("マグロ") ."&sort=.standard"; ?> <a href="<?= $jew ?>">魚</a> #php5.4未満なのでshort_open_tagを有効にしました(汗

a4orece
質問者

お礼

教えていただいた通りソースを確認した所、エンコードされてました。 お陰で、ひとつ問題が解決しました。ありがとうございます。

関連するQ&A

  • PHPのエンコードは特殊?

    $a="あ"; これを%E3%81%82とエンコードしたいのですが、 $b=urlencode($a); echo $b; とすると、%82%A0と出てきます。 %E3%81%82と表示させるにはどのように記述するのでしょうか? FLASHを少しかじっていてAS2ではescapeで対応できるので、 PHPのエンコードが変なのでしょうか。 分かる方いましたらご教授をお願いいたします。

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

    以前も、似たような質問をしたのですが少し内容が違いますのでよろしくお願いいたします。 このページ内で、ゲットしたキーワードを再ソートすると、2回エンコードされてしまいます。続けてまた、ソートすると、エンコードされた値がまたエンコードされてしまいます。、始めにゲットした値を1回だけエンコードし、ソートを変えても1回目のエンコードされた値を使うにはどのようにしたらよいのでしょうか? $base = 'http://xxx.xxxxxx.co.jp/xxx/xxx'; $keyword =$_GET["keyword"]; $keyword = urlencode($keyword); $sort = $_GET["sort"]; $sort = urlencode($sort); $url = $base ."&keyword=".$keyword."&sort=".$sort. ; <form action="<?=$_SERVER["SCRIPT_NAME"] ?>" method="get"> <input type="hidden" name="keyword" value="<?php print(htmlspecialchars($keyword, ENT_QUOTES)); ?>"> 表示順序 <select name="sort"> <option value="satandard">新着順</option> <option value="Price">安い順</option> <option value="-Price">高い順</option> <input type="submit" value="検索"> </select> </form>

    • ベストアンサー
    • PHP
  • PHP apiのソート順について質問

    menu.phpでキーワード(りんご)で書き出した後は、問題なく りんご(ソート順:スタンダード)が表示されるのですが、さらに、search.phpでソート順を変えて検索するとソート順はリクエストURLに反映されるのですが、キーワード’(りんご)がリクエストURLに入りません。 search.phpでmenu.phpのキーワード(りんご)繰り返しし使うにはどのようにしたら、いいのでしょうか? [menu.php] <p><a href="search.php?word=りんご&sort=standard">りんご</a></p> [search.php] <?php $base = 'http://xxx.xxxxxx.co.jp/xxx/xxx'; $word =$_GET["word"]; $keyword = urlencode($word); $sort = $_GET["sort"]; $sort = urlencode($sort); // リクエストURL $url = $base ."&keyword=".$keyword."&sort=".$sort. ; ?> 表示順序 <select name="sort"> <option value="satandard">新着順</option> <option value="itemPrice">価格の安い順</option> <option value="-itemPrice">価格の高い順</option> <input type="submit" value="検索"> </select> よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • キーワードの再検索で

    index.phpからキーワードを書きだし、search.phpで$_GETで受け取り→エンコード→ リクエストURLまでセットし、表示されるまでは問題ないのですが、ソート順を変更した際にリクエストURLに2回、キーワードが入ってしまいます。ブラウザのアドレスバーをみると、エンコードされた値(%e3%81%bf%e3%81%8b%e3%82%93(みかんみかん)と言う感じにが2回入ってしまいます。それを、ソートを変更しても、キーワードを1回だけ入れるには、どのようにしたらいいのでしょうか? [index.php] <p><a href="search.php?keyword=みかん&sort=standard">みかん</a></p> [search.php] <?php $base = 'http://xxx.xxxxxx.co.jp/xxx/xxx'; $keyword =$_GET["keyword"]; $keyword = urlencode($keyword); $sort = $_GET["sort"]; $sort = urlencode($sort); // リクエストURL $url = $base ."&keyword=".$keyword."&sort=".$sort. ; ?> 表示順序 <form action="<?=$_SERVER["PHP_SELF"]?>" method="get"> </select> <input type="hidden" name="keyword" value="<?php print(htmlspecialchars($keyword, ENT_QUOTES)); ?>"> <select name="sort"> <option value="satandard">新着</option> <option value="itemPrice">安い</option> <input type="submit" value="検索"> </select> よろしくお願いいたします。

    • 締切済み
    • PHP
  • ディレクトリ名に日本語をエンコードしたものを入れる

    例えば、[てすと] という文字列をurlencode()関数 でエンコードして %5B%E3%81%A6%E3%81%99%E3%81%A8%5D になりますよね。 でも、自分のサイトで、http://○○○.com/test/%5B%E3%81%A6%E3%81%99%E3%81%A8%5D/index.php にリンクを張ってアクセスしても、アクセスできないのです。 404エラーになってしまいます。 例を挙げるなら、ニコニコ動画のタグ以降のURLは http://www.nicovideo.jp/tag/○○○○○ となっています。 ○○○○○の部分に日本語をエンコードした文字列が入っています。 このような日本語をエンコードした文字列は、どうやって作ればいいのですか? urlencode()関数 で作ったはいいのですが、そこにリンクを張ってもアクセスできません。

    • ベストアンサー
    • PHP
  • urlencodeでエンコードされる文字コードが変わる

    内容が同じSJISとUTF-8のソースを実行すると、それぞれurlencodeでエンコードされる文字コードが変わってしまい困っています。 SJISでもUTF-8と同じようにエンコードをしてパラメタをサーバーに渡したいです。 例: 「株」というキーワードでエンコードすると SJISの場合:%8A%94 UTF-8の場合:%E6%A0%AA urldedodeの結果はどちらとも「株」となる。 php.iniのmbstringを一通りいじってみましたがうまくいきません。 どなかた詳しい方ご教授頂ければと思います。

    • ベストアンサー
    • PHP
  • urlにエンコードしたい。

    urlにエンコードしたい。 まったくの初心者で見よう見まねでやっています。下記を実行したのですが、 while ($col = mysql_fetch_array($rst)) { $body .= "<LI><A href='search.php?comment1=$col[comment1]'> $col[comment1]</A> " . "($col[cnt]件)"; } http://**.**.**/search.php?comment1= ほげほげ になってうまくいきません。 この ほげほげを%A4%DB%A4%B2%A4%DB%A4%B2のようにするには いろいろググってurlencodeをすれば良いのかな?と思い、いろいろ試しましたが うまくいきませんでした。上の文に何を足せば、どう書けばうまくいくのでしょうか? それとも何か違う方法があるのでしょうか? ご存知の方ご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • preg_replace内+URLエンコード

    現在、 $hogehoge=preg_replace( "/([^,\(\)]+)/" , '<a href="./hoge.php?hoge=\1">\1</a>', $hoge); このように変数をそのままリンク処理しております。 現在はこの変数に1バイト文字のみしか入っていないのですが、今後2バイト文字も取り扱おうつもりですので、urlencode関数を使いURLエンコードを組み込みたく思います。 このままのカタチで組み込むことは可能でしょうか?

    • 締切済み
    • PHP
  • 日本語をパラメータにしてリンク

    をはりたいのですが Perl,PHP,JavaScript等を使わないでエンコードする方法は有るでしょうか? <a href="http://www.co.jp?x=良好>リンク</a> ではまずいので「良好」の部分をurlencodeしたいのです。 極力formを使わない方法を教えてください。

    • ベストアンサー
    • HTML
  • JavaScriptの文字のエンコードについて

    フォームの入力欄で、「'」(シングルクォート)を入力してサブミットすると、ブラウザ(Firefox3.5)で見ると「'」と表示されていますが、ブラウザのソースを見るとvalueの¥ところには、「'」と表示されています。 これは、PHPでエンコードされているせいなのですが、 PHPでエンコードされた「'」を、JavaScriptを使って、ブラウザからソースを見たときに「'」と表示できるでしょうか? ソースは、こんな感じで書いたのですが、動作しませんでした........。 function chChar(){ var keyValue = document.getElementById("delete_key").value; var ascii = new Array(' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var htmlChar = new Array(' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var re = new RegExp(htmlChar); if(keyValue.match(re)){ for(i=0; i<ascii.length; i++){ keyValue = keyValue.replace(htmlChar[i], ascii[i]); } } return keyValue; }