[PHP-users 25488] Re: HTMLソースの暗号化
MAO
mao @ nextyle.com
2005年 4月 27日 (水) 00:05:41 JST
こんばんは。
みなさん、いろいろとありがとうございました。
Setoさんからご紹介いただいた、
decodeURIComponentを使う方法でできそうです。
EUC領域のすべての文字をチェックしたわけではありませんが、
2byte文字も化けずにでています。
smartyをつかっていたので、テンプレートファイルを一つ追加して、
エンコードしたい場所で呼び出す方法にしました。
------------------encode.tmpl-----------------------------------------
<SCRIPT LANGUAGE="JavaScript"><!--
document.write(decodeURIComponent('{ $encode_text|mb_convert_encoding:"UTF-8"|rawurlencode }'));
-->
</script>
------------------/encode.tmpl-----------------------------------------
ベースのテンプレートファイルから、
{include file="encode.tmpl" encode_text =$encode_suru_text|escape}
と呼び出しました。
当初は
$encode_text = $tmpl->fetch('view.tmpl');
$encode_text = rawurlencode( mb_convert_encoding($encode_text,"UTF-8","EUC-JP"));
$tmpl2 = new Template;
$tmpl2->assign('encode_text', $encode_text);
$tmpl2->display('encode.tmpl');
と、いう感じで、Smartyを利用して、すべての文字をエンコードしたのですが、
デコードに時間がかかりすぎたため、
必要な文字のみエンコードする方法にしました。
以上、ご報告まで。
PHP-users メーリングリストの案内