関係者のみのページから特定のページにリンクさせる際に
ダミーのリファーを飛ばしてリンクするシステムを作っています。
link.php の内容(EUC)
<?
$url = $_GET['url'];
?>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<html>
<body>
下のURLへリンクします。よろしければクリックしてください。<BR>
<a href="<? echo $url; ?>"><? echo $url; ?></a>
</body>
</html>
このスクリプトを引数url http://search.yahoo.co.jp/search?p=%E4%BB%8A%E6% … (URLエンコードされた文字列)を与えて起動すると
URLエンコードされた部分が文字化けしてしまいます。
渡された引数をそっくりそのまま表示し文字化けさせずに表示させることはできないのでしょうか。
No.4ベストアンサー
- 回答日時:
以下,サンプルです。
もう少しスマートなやり方があるかもしれませんが、それは専門家の方に(?・・)ル(^^*)ノ タッチw<?php
$url = $_GET['url'];
// ?で分割
list($urlbase, $initarg) = explode("?", $url);
// =で分割
list($param, $value) = explode("=", $initarg);
// URLエンコード
$value = urlencode($value);
// 分岐先生成
$jumpto = $urlbase . "?" . $param . "=" . $value;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<br>
下のURLへリンクします。よろしければクリックしてください。<BR>
<a href="<?php print $jumpto; ?>"><?php print $url; ?></a>
</body>
</html>
リンク文字列が文字化けしてしまうので
合体させて下記の落ち着いたとおもったんですが、
1番目の引数しか処理されないですねぇ。
2番目にエンコード対象があると処理されません。
難しいですが、いくつかヒントを頂けましたので
頑張ってみます。
ありがとうございました。
<?php
$url = $_GET['url'];
// ?で分割
list($urlbase, $initarg) = explode("?", $url);
// =で分割
list($param, $value) = explode("=", $initarg);
// URLエンコード
$value = urlencode($value);
// 分岐先生成
$jumpto = $urlbase . "?" . $param . "=" . $value;
$disp = mb_convert_encoding(urldecode($url),"EUC-JP","UTF-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<br>
下のURLへリンクします。よろしければクリックしてください。<BR>
<a href="<?php print $jumpto; ?>"><?php print $disp; ?></a>
</body>
</html>
No.2
- 回答日時:
<?
$url = $_GET['url'];
$disp = mb_convert_encoding(urldecode($url),"EUC-JP","UTF-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
下のURLへリンクします。よろしければクリックしてください。<BR>
<a href="<?php print $url; ?>"><?php print $disp; ?></a>
</body>
</html>
----------------------------------------------------------------
というようなことでしょうか?
勘違いしてたらすみません。
No.1
- 回答日時:
url部分と、引数部分(?から後ろ)を分けてやれば以下のように文字化けしません。
<?php
$url = $_GET['url'];
$arg = $_GET['arg'];
$jumpto = sprintf("%s?p=%s", $url, urlencode($arg));
$jumptolist = sprintf("%s?p=%s", $url, $arg);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
下のURLへリンクします。よろしければクリックしてください。<BR>
<a href="<?php print $jumpto; ?>"><?php print $jumptolist; ?></a>
</body>
</html>
urlを一括指定するときには、parse_url()を使用して、プログラム側で再構成してあげればいいかと思います。
参考URL:http://jp.php.net/manual/ja/function.parse-url.php
この回答への補足
引数に渡されるURLは不特定多数のものですので常にp=で来るとは限りません。
エンコードされた部分のみを処理することはできないのでしょうか。
説明の仕方が悪かったと思います。
本当に申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XAMPP1.7.1上でPHPを実行すると...
-
これまで遷移してきたサイト内...
-
複数の文字列をファイルに書き...
-
ファイルをアップロードすると...
-
機種依存文字の文字化けについて
-
すみません また宜しくお願い...
-
htmlのエラーについて(デバッグ)
-
文字化けについて
-
日付と年月日を選択するコード...
-
mb_convert_variablesで変換出...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
リンク先を隠す方法はないでし...
-
「@$変数」の「@の意味は?」
-
PHPのif文でその処理を途中で抜...
-
フォームで戻った際に入力済み...
-
form actionで二つ送信先を指定...
-
CFileDialogの最初のディレクト...
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのエラーについて(デバッグ)
-
php ログイン
-
文字化けについて
-
日付と年月日を選択するコード...
-
PHP postgreSQL(teraterm)を用...
-
前後の全角スペースを削除する...
-
ここでの ②if($su_d<>"")の比較...
-
複数の文字列をファイルに書き...
-
PHP(smarty)についての質問(文...
-
phpの画面表示が真っ白です
-
機種依存文字の文字化けについて
-
ローカル環境で動くのに本番環...
-
XAMPP1.7.1上でPHPを実行すると...
-
文字コードの出力を変更したい
-
XMLパースエラー回避方法
-
どうしたら確認ができますか!?
-
phpでfopen()やfputs()が使えない
-
ファイルをアップロードすると...
-
zampp PHPでPOSTの変数が返っ...
-
pdf表示
おすすめ情報