实现php截取部分文章

   更新日期:2024.05.01
实际上PHP核心是把所有的文本都安ASIIC来看待的,GBK编码下一个中文字符是2个字节,所以substr时候有可能截取办个中文字符例如stbstr("a中", 0, 2)就把“中”截断了。
mb_string有的服务器没有编译进去。
下边有一个截取中文字符的函数,要求是GBK编码的。
$str是字符串,$strlen是要截取的长度,一个中文算两个字符。
用这个函数就不会出现乱码了
<?php
/* 截取一定长度的完整的中文字符 */
function cnsubstr($str,$strlen=10) {
if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}
//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}

中文截取用 mb_substr
<?php
$str = "中文截取abcd";
print mb_substr($str,2,3,"gb2312"); // 截取a gb2312 是字符。gb2312不行的话就用 utf8
?>

  • 15351062471 :如何用 php 抓取微信文章正文
    房哗狡2544 :答:(.*?)<\/title>.*?/";//正则匹配文章的标题preg_match($title_html, $wx_content, $matchs);echo $matchs[1]."<<>>";//echo
  • 15351062471 :php 怎么截取一篇文章中的一部分
    房哗狡2544 :答:如果后者 可以用 tidy_clean_repair (需要安装了 tidy 库 ).
  • 15351062471 :php如何采集文章
    房哗狡2544 :答:用网页抓取函数curl或者fopen或者file_get_contents,然后再用正则匹配来提取网页中的内容:preg_match,preg_match_all基本就这两个步骤足够了!
  • 15351062471 :php随机获取文章一部分内容 怎么写啊?
    房哗狡2544 :答:符号太多样了。根据你的提示,能想到的函数是str_replace content = str_replace(array(',','!'.'。','?'),array(' '),$content);把, ! 。? 这四个符号替换成 空格.有其他的符号,补充就好了。
  • 15351062471 :PHP中怎样实现文章采集
    房哗狡2544 :答:preg_match( string pattern, string subject [, array matches ] );//正则获取自己需要的内容 入库~完事了。。。当然,情形复杂,例如需要登录,采集目标限制等问题,这再说...实际使用的时候,可以直接使用Snoopy类,提供...
  • 15351062471 :php 怎么读取.txt文件中某个字符或某一小段字符
    房哗狡2544 :答:$str2));$result =explode(" ",$result);print_r($result);?>以上部分为数据处理部分,读取文本内容部分省略掉了 追问: 如果 这个字符串中没有数字.也就是 "ggggdff" 之前没 数字"213312"现在只想把文档的里"...
  • 15351062471 :如何用 php 抓取微信文章正文
    房哗狡2544 :答:这种问题,放弃用正则吧,要真正完备的你可能得写一篇文章那样长。但 html 已经是结构化的了,找个 html 解析库就行了,我刚用 firebug 粗略的看了下,正文是在 id 为 page-content 的 div 里。当然,如果我所看到的...
  • 15351062471 :PHP怎样提取内容中的部分字符
    房哗狡2544 :答:<?php html = "abcdefghijk……";text = "a,b,cd,e,f,g,hi,j,bdd,eee";tags_array = explode(',', $text);tags = array();foreach($tags_array as $tag) { if(strpos($html, $tag) !== false){...
  • 15351062471 :php 如何提取一遍文章中的前一百个字,提纯文字不要图片和其他的代码...
    房哗狡2544 :答:先用preg_replace将<[^>]+>替换为空,也就是去掉了所有的html标记,然后再取字符就行了。
  • 15351062471 :php要截取一段汉语文字,怎样才能保证不把汉字拆开?
    房哗狡2544 :答:还得看你的编码是gbk的还是UTF8的。以下是UTF-8的编码下的截取 function smarty_modifier_truncate_utf8($string, $length, $etc = '...'){ result = '';string = html_entity_decode(trim(strip_tags($string))...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网