[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 メーリングリストの案内