
PHP 读文本中的一部分。并保证汉字完整
中12s国ssssss中国人中国人中国人。森严如:读中间的6个字节,如果赶上汉字不完整了减少读入字节数。UTF-8。类似于将读入的文本以分页形式显示。一页里当然不可能出现...
中12s国ssssss中国人中国人中国人。森严如:读中间的6个字节,如果赶上汉字不完整了减少读入字节数。
UTF-8。
类似于将读入的文本以分页形式显示。一页里当然不可能出现汉字不完整情况。第一页在哪里截断就是个问题。
只想通过字去读。不想用行去读。 展开
UTF-8。
类似于将读入的文本以分页形式显示。一页里当然不可能出现汉字不完整情况。第一页在哪里截断就是个问题。
只想通过字去读。不想用行去读。 展开
3个回答
展开全部
说简单也简单,说难也难。因为难是新手想简单了。
先上几个概念,再上代码
概念1
php4.3.0以上已经可以处理多字节字符了。
首先确保一下你的 php.ini 中配置一下节(默认是配置好的,支持的)
[mbstring]
[PHP_MBSTRING]
extension=php_mbstring.dll
然后就可已使用这些函数了。(如 mb_substr 代替原来的 substr)
概念2
多字节编码问题,不同编码长度不一样,还有固定长度和可变长度的分别。
常说的汉字占两个字节是指传统的GB2312区位码现在流行的utf8的编码是1至6个变长字节。
所以,首先要统一编码,然后用php带的多字节处理函数来处理
代码示例
<?php
//测试时文件的编码方式要是UTF8
$str='中文a字1符';
echo strlen($str).'<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?>
追问
UTF-8。
类似于将读入的文本以分页形式显示。一页里当然不可能出现汉字不完整情况。第一页在哪里截断就是个问题。
追答
除非是纯文本,非常容易。
如果有html代码,正好将布局的标签(div,table等)截断页面可能出现布局错乱。所以含有html代码的自动分页很难做,需要用到html代码分析。 常用的是手动分页,插入分页符。

2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
展开全部
我记得有方法可以判断,截断出来的字符串是否是汉字、
如果是汉字,往前退一位截断,再判断当前截出来的最后一个字符是否是汉字、
递归下去,直到截出来的是汉字为止、
如果是汉字,往前退一位截断,再判断当前截出来的最后一个字符是否是汉字、
递归下去,直到截出来的是汉字为止、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function substr_CN($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
追问
UTF-8。
类似于将读入的文本以分页形式显示。一页里当然不可能出现汉字不完整情况。第一页在哪里截断就是个问题。
追答
不明白提问者的意思,第一页在哪里截断,这完全取决于操作者,况且几乎没有段中分页这种场景,无非就是段外分层显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询