いしなお!
2004-04-23 [長年日記]
_ 肉 退職 菱木マッチョリーナ (13:51)
さっき飯を食いに行ったら、歩道に青いビニールカバーが掛けられた箱の載った台車が置いてあって、そのビニールカバーに「肉」「退職」「菱木マッチョリーナ」と書かれていたんだけど、あれはいったい何なんだろう? 「菱木マッチョリーナ」ってどこか「グレコローマンかたぎ」に通ずるものがあるな。あるいは坂本ジュリエッタの友達?
_ Smarty modifier.mbtruncate.php (13:51)
Smartyのtruncateをマルチバイト文字列に対応させたもの。pluginsディレクトリにつっこんでおく。Smartyテンプレート内で{$string|mbtruncate:30}なんて感じで使う。
modifier.mbtruncate.php
function smarty_modifier_mbtruncate($string, $length = 80, $etc = '...') {
if ($length == 0) {return '';}
if (strlen($string) > $length) {
$length -= strlen($etc);
return mb_strcut($string, 0, $length).$etc;
} else {
return $string;
}
}
ああ、日本語ではbreakwordなんか考えたらおかしくなるな。削っておこう。
_ Smarty modifier.mbconvert.php (13:51)
Smartyのテンプレート上でマルチバイト文字コード変換を行う。あんまり使い道はなさそうな気もするけど、あってもいいだろう。pluginsディレクトリにつっこんでおく。Smartyテンプレート内で{$string|mbconvert:"urf-8":"euc-jp"}なんて感じで使う。
modifier.mbconvert.php
function smarty_modifier_mbconvert($string, $charset, $source_charset = 'auto') {
return mb_convert_encoding($string, $charset, $source_charset);
}
_ Smarty modifier.mbkana.php (13:51)
Smartyのテンプレート上で全角半角変換を行う。pluginsディレクトリにつっこんでおく。Smartyテンプレート内で{$string|mbkana}なんて感じで使う。デフォルトオプションは「半角カナ→全角カナ」「全角英数→半角英数」「全角空白→半角空白」変換。
modifier.mbkana.php
function smarty_modifier_mbkana($string, $option = 'KVas') {
return mb_convert_kana($string, $option);
}
Smartyのtruncateは、デフォルトだと、マルチバイト対応をしておらず、文字化けの原因でした。 きっと何か方法は...
Smartyのmodifierで指定文字数で文字列を切るというtruncateと...
Smartyでtruncateを使って日本語を切り捨てたく使っていたんだけど、truncateって日本語に対応していないらしく、文字化けしたり意図する長さに設定できなくて途中で切れたりして使えないと思っていました。 調べると、マルチバイトに対応したプラグインがあるらしい。 い...
truncate修飾子がマルチバイトに対応していないみたいなので、 こちらのサイ...
あっちゃー!恥ずかしい。<br>すみません、先に投稿したコメントを削除してください。<br><br>初めまして、phpで全角数字を半角数字に変換する方法を検索していて、こちらへ飛んできました。<br><br>phpのマニュアルにはmb_convert_kanaで全角英数を半角英数に変換できると書かれていますが、アルファベットは変換できますが、数字は半角数字になりませんでした。<br><br>echo mb_convert_kana("293","KVas");<br>や<br>echo mb_convert_kana("293","an");<br>としても数字は半角になりませんでした。<br>全角数字を半角数字に変換するにはどうしたら良いでしょうか。<br>教えて頂ければ幸いです。
PHPのコード自体は上記で間違っていないので、おそらくmbstringライブラリの設定に問題があるんだと思います。<br><br>mbstring.*系の設定を、使用している日本語文字コードにあわせて正しく設定しておけば、きちんと変換されるようになるでしょう。