phpで「.」もurlencodeする方法。

hoge@hoge.comの「.」をurlencodeしたいでうす。
デフォルトだと「-_.を除くすべての非英数文字が、%記号 (%)に続く二桁の数字で置き換えられ」らしいですね。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/15 20:39:06
  • 終了:--

回答(4件)

id:shampoohat No.1

shampoohat回答回数347ベストアンサー獲得回数02005/06/15 20:56:16

ポイント18pt

URLエンコードということですから、.を%2Eに置き換えればOKですよね。


なので、いったんURLエンコードした後の文字列をpreg_replaceで置き換えるなどすればOKかと思います。


$stringが、いったんurlencodeされた後の文字列として


$patterns[0] = ”/¥¥¥¥./”

(もしかしたら、$patterns[0] = ”/¥¥./”で良いのかも知れませんが、未確認です)


$replacements[0] = ”%2E”


preg_replace($patterns, $replacements, $string);


ただ、自分、PHPは知らないですので、マヌケな回答でしたら申し訳ありません。

id:kunitz

ありがとうございます!

URLエンコードした後の文字列をpreg_replaceで置き換えるなどすれば

2005/06/15 23:19:13
id:english No.2

english回答回数304ベストアンサー獲得回数02005/06/15 21:20:50

ポイント18pt

要は、hogehoge.comがhoge%40hoge%2Ecom

になればいいということだと思いますので、


-----------ここから-------------

<?php

$email = ”hoge@hoge.com”;

$email_b = urlencode($email);

print $email_b . ”<br>”;

print eregi_replace(”¥.”,”%2E”,$email_b);

?>

-------------ここまで-------------


のように普通にURLエンコードしてあげた上で、さらに「.」を「%2E」にしてあげればいいのではないかと思います。結局、2ステップになります。


ここで、「.」は「¥.」のようにエスケープ処理をしてあげないといけません。


なお、はてなのシステム上の都合により、ダブルクォテーションや円マークが全角で表示されていると思いますが、実際には半角です。また、<br>も本当は半角です。


2ステップなのが気になる場合には、関数化すればいいと思います。

id:kunitz

ありがとうございます!

eregi_replace

2005/06/15 23:19:31
id:ymlab No.3

ymlab回答回数508ベストアンサー獲得回数342005/06/15 23:10:40

ポイント17pt

全ての文字を、X字ずらし、urlencodeします。

 その後、urldecodeした後、X字戻せばよいのでは。

 具体的には、絶対に、X字ずらしたときに、.にならないように、Xは、最低 [.]のASCII文字番号以上にするとかの配慮が必要ですが。

要するに、シーザー暗号化してしまうわけです。

id:kunitz

ありがとうございます!

X字ずらし、urlencodeします

2005/06/15 23:20:05
id:ke_ishi No.4

ke_ishi回答回数269ベストアンサー獲得回数02005/06/16 09:52:45

ポイント17pt

str_replaceの方が早いですよ。

以下のようなラッパー関数を使っては?


function my_urlencode($str){

return(str_replace(’.’, ’%2E’, urlencode($str)));

}


function my_urldecode($str){

return(urldecode(str_replace(’%2E’, ’.’, $str)));

}

id:kunitz

ありがとうございます!

str_replace

2005/06/16 10:17:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません