[PHP-users 30163] Re: 半角文字列、全文字置換したい。

Takashi Tomokuni ttsan2000 @ gmail.com
2006年 8月 28日 (月) 19:02:44 JST


はじめまして、友国です。

perl の場合、正規表現から正規表現へと変換できるようですが
PHP の場合はそれはできないようです。
preg_replace や ereg_replace、eregi_replace ともに検索パターンには
正規表現は使えますが、マッチした文字に対して変換するのは文字列のみです。
ですのでこの場合、PHP でどうこうってのは無理なようです。

かなりややこしいことになりますが、私なら

// GET で email を受け取ったとします。
$org_email = $_GET['email'];
$exec = "perl -e \"" . '$email' . " = '" . $org_email . "'; " . '$email =~ tr/0-9a-zA-Z/A-Za-z0-9/;
print $email;';
$email = exec($exec);

としますね。

それでは。

神谷博之 wrote:
> お尋ねします。
> 
> perl言語で、たとえば、以下のように、メールアドレスをスクランブル化します。
> $ma='abc12345 @ nifty.com';
> $ma=~ tr/0-9a-zA-Z/A-Za-z0-9/;
> 
> 
> 作成された $mail_adrs をphp言語で受け取って、'abc12345 @ nifty.com'を復元したいです。
> 
> phpで、このような半角文字置換を行う場合、str_replace 関数しか知りません。
> でも、
> $ma2=str_replace("0","A",$ma1);
> $ma2=str_replace("1","B",$ma2);
>>> $ma2=str_replace("Z","9",$ma2);
> これは実用的ではないですね。
> 
> 何か便利な関数あったら教えてください。
> 
> なければ、1文字ずつ文字コードを変換することになりますか。
> 
> 神谷
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 



PHP-users メーリングリストの案内