IE的使用者感覺應該比較明顯,Fx頂多只會顯示出問號(置入式行銷又一例XD),這個問題之前DearJohn也跟我問過,那時雖然印象中有看過解決方法,但是卻因為做法麻煩又沒什麼大礙就沒記下
碰巧在Beata這邊看到,是整個修改好的程式碼,就拿來用了,有用有保佑,現在不會有亂碼或問號發生了,修改完後記得版面設定字數縮減那邊也要調整一下,會變的跟原本不太一樣這樣
原始出處為夢遊華人中文網
將inc_function.php的
function str_cut($str, $maxlen, $type) {
$str = str_trans_rev($str);
$len = strlen($str);
if ($len <= $maxlen) return str_tag_off(str_trans($str));
for ($i=0;$i<($maxlen-1);$i++) {
if (ord(substr($str,$i,1)) < 128) {
$return_str .= substr($str,$i,1);
} else {
$return_str .= substr($str,$i,2);
$i++;
}
}
$str = str_tag_off(str_trans($str));
$return_str = str_tag_off(str_trans($return_str));
if ($type) return "".$return_str."..";
else return $return_str."..";
}
取代為
function str_cut($str, $maxlen, $type) {
// Sea Otter
// 代碼說明:對原有中文截取函數的修正
// 1、長度錯誤
// 2、位置錯誤
// 變更方式:修改
// 變更時間:2005.05.10
// 變更開始----------------------------------
/*
// 原截取代碼
if ($len <= $maxlen) return str_tag_off(str_trans($str));
for ($i=0;$i<($maxlen-1);$i++) {
if (ord(substr($str,$i,1)) < 128) {
$return_str .= substr($str,$i,1);
} else {
$return_str .= substr($str,$i,2);
$i++;
}
}
*/
$str = str_tag_on(str_trans_rev($str));
$i = 0;
$l = 0;
$len = strlen($str);
$return_str = $str;
$f = true;
while ($i <= $len) {
if (ord($str{$i}) < 0x80) {
$l++;
$i++;
}
else if (ord($str{$i}) < 0xe0) {
$l++;
$i += 2;
}
else if (ord($str{$i}) < 0xf0) {
$l += 2;
$i += 3;
}
else if (ord($str{$i}) < 0xf8) {
$l += 1;
$i += 4;
}
else if (ord($str{$i}) < 0xfc) {
$l += 1;
$i += 5;
}
else if (ord($str{$i}) < 0xfe) {
$l += 1;
$i += 6;
}
if (($l >= $maxlen - 1) && $f) {
$return_str = substr($str, 0, $i);
$f = false;
}
if (($l > $maxlen) && ($i <=$len)) {
$return_str = str_tag_off(str_trans($return_str))."..";
if ($type) {
$str = str_tag_off(str_trans($str));
$return_str = "".$return_str."";
}
break;
}
}
return $return_str;
// 變更結束----------------------------------
}
10 Comments
這個問題我也困擾很久
真的有用耶
感謝vsy提供分享^^
有沒有 MT 的? (^.^)
之前改過,不過因為完全不熟 perl,改了半天沒成功….=.="
我是不知道怎麼拿perl字串裡某個字元啦…
C 的話可以用 str[n] 直接拿….
你試試看用這個網址能不能傳送
http://beata.daxp.com/Blog/rserver.php?mode=tb&sl=20
呃,我本來就是用這個網址傳送說,所以一樣不行
欸..算了,想不出問題在哪XD
嗯,改好了,也美多了,跟vsy借來引用、引用嚕!
太感動啦…
困擾已久的問題終於解決了!
衷心感謝Beata和vsy…
感謝vsy的分享!
終於解決這個問題!^^
在vsy那邊看到的,一開始用筆記本修個半天,難度不高,只是看錯碼,所以老編不好,花了十幾分鐘。
編好後,看起來功能列更漂亮了,只要再做點細部調整就OK,謝謝vsy分享嚕!
真的非常感謝解決這個惱人的問題~
我連inc_function.php也不知道在那… :twisted: :twisted:
有誰告訴一下我?:cry:
再看亂碼的倒不如用回IE……… :twisted: