よくある●●診断みたいなのに組み込まれているのが、
大体文字列を数字に変換して、数字で条件分岐して結果表示するといったロジック。
今回はそのロジックの一部分をさくっと作ってみた。
aとかbとか普通の文字列を数字に変換するパターン
$text_ary = str_split($text); foreach($text_ary as $key => $value){ $num[$key] = ord($value); } $result = array_sum($num);
str_splitで1文字ずつ分解して、$text_aryという配列に格納。
$text_aryという配列をforeachで一つずつまわしていき、
ord()という関数で文字コードに変換。
(ord("a")→61)
array_sum()を使って配列の中身を全て足し算すると数字が出る。
足し算してもいいし、掛け算でもいいだろうし。
結果を円でまわしてあげれば360パターン以下で済んだり。
URLから数字を取得するパターン
$url = urlencode($url); $ary = explode('%',$url); foreach($ary as $key => $value){ if($value != "") $num[$key] = hexdec($value); } $result = array_sum($num);
まずはurlencodeでURLをUTF-8に変換してあげる。
UTF-8の場合は%が邪魔になってくるので、%で区切って配列化。
配列をまわしてあげて、hexdecを使って16進数を10進数に変換。
array_sum()を使って中身を足し算。
hexdec()を使う理由はurlencodeをすると「/」→「%2F」のように、16進数が出てくるため。
だから%で区切ってあげるとちょうど「2F」→「47」と表示される。
もちろん用途に分けて使ってあげる必要があるし、
ord()を使うところを工夫してhexdec()でもよいと思う。
0 件のコメント:
コメントを投稿