吴启华Blog » Blog Archive » Discuz的wap论坛出现"未知文件格式"的解决方法 - 用心感受生活……

Discuz的wap论坛出现"未知文件格式"的解决方法

Author:唯一 Date:2007-08-01 View:1,231 views Under:≮┄程序┄≯

前些日子玩discuz论坛(utf-8编码),因为论坛是智能手机相关的,通过手机端的访问的概率很高,因此dz的wap必须保证正常工作,使用中发现:symbian系统访问出现”未知文件格式“;wm5/6系统访问出现”此页包含错误,无法显示“.

到官方论坛搜索了相关问题,发现很多人遇到这样的问题,但是官方却没有给出解决方法,郁闷不已.

经过研究和测试,发现其实问题很简单,原来是wap的字符窜截取的问题(字符截取导致乱码,手机系统的字库有限,就报错).

原创转载请注明出自http://blog.wuqihua.com

修改 wap/include/global.func.php
里面的函数 wapcutstr()

原函数

function wapcutstr($string, &$length) {
$strcut = ”;
if(strlen($string) > $length) {
for($i = 0; $i < $length – 3; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
$length = $i;
return $strcut.’ ..’;
} else {
return $string;
}

}
替换为

function wapcutstr($str,&$length){

$suffix=TURE; //是否加…
$start=0; //从左边0开始
$charset=”utf-8″; //字符集

if (function_exists(‘mb_substr’)) {
$more = (mb_strlen($str) > $length) ? TRUE : FALSE;
$text = mb_substr($str, $start, $length, $charset);
if($suffix && $more) $text.=” …”;
} elseif (function_exists(‘iconv_substr’)) {
$more = (iconv_strlen($str) > $length) ? TRUE : FALSE;
$text = iconv_substr($str, $start, $length, $charset);
if($suffix && $more) $text.=” …”;
} else {
$re['gb2312'] = “/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/”;
preg_match_all($re[$charset], $str, $match);
$text = join(“”,array_slice($match[0], $start, $length));
if (count($match[0])>$length) {
$more = TRUE;
$text = join(“”,array_slice($match[0],0,$length));
} else {
$more = FALSE;
$text = join(“”,array_slice($match[0],0,$length));
}
if($suffix && $more) $text.=” …”;
}
return $text;
}

另外wap/include/forum.inc.php my.inc.php pm.inc.php search.inc.php 里面用到了cutstr函数也会导致问题的出现,请做相应处理即可.



留下评论 | Trackback 这篇文章有5个评论.

1F IT 2007-12-16 6:42 下午

哈哈 感谢 我的论坛也是这个问题 用这个方法解决好了

2F jackee 2008-04-18 5:01 下午

我照你说的方法修改了function wapcutstr函数但是还是不行啊,另外wap/include/forum.inc.php my.inc.php pm.inc.php search.inc.php 里面用到了cutstr函数也会导致问题的出现,请做相应处理即可.
这个部分能说的再详细点吗?万分感谢了

3F 唯一 2008-04-21 12:13 上午

wapcutstr
cutstr

对的, 这两个函数都有问题的!相应处理就可以了!其实只要知道导致问题的原因就能解决问题的!

4F 1999 2009-06-15 9:25 下午

你好,我在网上下载了wap的修改文件,但现在是部分版块可以用手机发帖,部分不能发帖,报未知 文件格式 错误,不知道是怎么回事,

5F VE 2009-06-15 10:28 下午

部分板块里面的帖子列表的帖子标题被截断乱码了的缘故。

我来写两句评论.