ホームページ > バックエンド開発 > PHPチュートリアル > php Smarty truncate UTF8 文字化け問題の解決策_PHP チュートリアル

php Smarty truncate UTF8 文字化け問題の解決策_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:28:19
オリジナル
882 人が閲覧しました

スマートなテンプレートで遊んでいる多くの子供たちは、文字化けのトリミングの問題に遭遇していると推定されます。特にUTF8エンコード。

次のコードを modifier.truncate2.php として保存し、smarty libs の下のプラグイン ディレクトリに保存します

次に、トリミングするときに $v->content|truncate2:100 を使用します

以上です。

動作しない場合は、キャッシュが原因である可能性がありますので、早急にtemplates_c配下のキャッシュファイルを削除してください(実行中にエディタでキャッシュの問題が発生しました。)

コードをコピーします コードは次のとおりです。以下:

/ **
* Smarty プラグイン
* @package Smarty
* @subpackage plugins
 */


/**
* Smarty truncate 修飾子プラグイン
*
* タイプ: modifier

* 名前: truncate

* 目的: 必要に応じて文字列を特定の長さに切り詰めます。
* オプションで単語の途中で分割し、
* $etc 文字列を追加するか、途中に $etc を挿入します。
* @link http://smarty.php.net/manual/en/ language.modifier.truncate.php
* truncate (Smarty オンライン マニュアル)
* @author Monte Orrt
* @param string
* @param integer
* @param string
* @param boolean
* @param boolean
* @return string
 */
function Smarty_modifier_truncate2( $string,$length = 80,$etc='...', $count_words = true ) {
return $returnstr = substr_utf8($string, 0, $length).$etc;

}

function substr_utf8($str, $start=0, $length=-1, $return_ary= false) {
$len = strlen($str );if ($length == -1) $length = $len;
$r = array();
$n = 0;
$m = 0;

for($i = 0; $i < $len; $i++) {
A, -8); (if ($ n & lt; $ start) {
IF (Substr ($ a, 0, 1) = = 0){
} elseif(subst($ a、0、3)== 110){
a、0、1)== 0)= subst($ str、$ i、2); 3);
) {


return $return_ary ? $r : implode("",$r);
}
/* vim: set Expandtab: */
?>

samrty のプラグイン システムは比較的スマートで、変更が簡単です。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/802225.html技術記事 Smarty テンプレートで遊ぶ多くの子供たちは、文字化けをトリミングするという問題に遭遇したことがあると推定されます。特にUTF8エンコード。 次のコードを modifier.truncate2.php として保存し、smarty libs のプラグイン ディレクトリに保存します...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート