人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:hoge PHP デフォルト 数字
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● shampoohat
●18ポイント

http://php.s3.to/man/function.preg-replace.html

preg_replace

http://www.rtpro.yamaha.co.jp/RT/docs/misc/code-table.html

key code table

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


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


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


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

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


$replacements[0] = ”%2E”


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


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

◎質問者からの返答

ありがとうございます!

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


2 ● english
●18ポイント

http://www.google.co.jp/search?sourceid=navclient&hl=ja&...

Google

要は、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ステップなのが気になる場合には、関数化すればいいと思います。

◎質問者からの返答

ありがとうございます!

eregi_replace


3 ● ymlab
●17ポイント

http://php.s3.to/man/function.urlencode.html

urlencode

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

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

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

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%B6%E3%83%B...

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

◎質問者からの返答

ありがとうございます!

X字ずらし、urlencodeします


4 ● ke_ishi
●17ポイント

http://php.s3.to/man/function.str-replace.html

str_replace

str_replaceの方が早いですよ。

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


function my_urlencode($str){

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

}


function my_urldecode($str){

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

}

◎質問者からの返答

ありがとうございます!

str_replace

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ