本篇文章给大家谈谈织梦CMS系统字符串内容截取函数,以及织梦如何采集文章的知识点,同时本文还将给你拓展dedecms字符串截取函数怎么用、php字符串截取函数用法分析,php字符串截取函数、php字符
本篇文章给大家谈谈织梦CMS系统字符串内容截取函数,以及织梦如何采集文章的知识点,同时本文还将给你拓展dedecms字符串截取函数怎么用、php字符串截取函数用法分析,php字符串截取函数、php字符串截取函数用法分析,php字符串截取函数_PHP教程、使用织梦CMS系统搭建网站教程等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 织梦CMS系统字符串内容截取函数(织梦如何采集文章)
- dedecms字符串截取函数怎么用
- php字符串截取函数用法分析,php字符串截取函数
- php字符串截取函数用法分析,php字符串截取函数_PHP教程
- 使用织梦CMS系统搭建网站教程
织梦CMS系统字符串内容截取函数(织梦如何采集文章)
在织梦(即dedecms)二开以及做网站时,我们经常会用到字符串截取的问题,在织梦中字符串内容截取函数比较常用的有两个。今天,80空间小编来给大家说一下这两个函数。Html2text() 函数是去掉html标签代码。
cn_substr(str,80) 函数是截取字符串长度。
当然,他们也可以合并起来使用:
[field:body function="cn_substr(Html2text(@me),80)"/]
更多函数总结:
基本语法:
函数一:function=cn_substr(@me,200)(功能:获取指定数值的字符串)
函数二:function=html2text(@me)(功能:去掉html样式,转换为纯文本字符)
函数三:function=GetDateTimeMk(‘@me’)(功能:根据秒数返回时间)
函数四: function=“GetDateMK(@me) (功能:根据秒数返回日期)
函数五: function=‘strftime(“%m-%d”,@me)’(功能:根据秒数返回格式化的日期或者时间,php自带的函数)
首页:
08 [field:pubdate function=strftime('%d',@me)/]
08 日 [field:pubdate function=strftime('%d日',@me)/]
06-08 [field:pubdate function=strftime('%m-%d',@me)/]
06月08日 [field:pubdate function=strftime('%m月%d日',@me)/]
09-06-08 [field:pubdate function=strftime('%y-%m-%d',@me)/]
2009-06-08 [field:pubdate function=strftime('%Y-%m-%d',@me)/]
09年06月08日 [field:pubdate function=strftime('%y年%m月%d日',@me)/]
2009年06月08日 [field:pubdate function=strftime('%Y年%m月%d日',@me)/]
2009-06-08 13:28 [field:pubdate function=strftime('%Y-%m-%d %H:%M',@me)/]
栏目页:
[field:pubdate function="GetDateTimeMK(@me)"/]==2008-1-1 18:30:02
[field:pubdate function="GetDateMK(@me)"/]==2008-05-15
函数六: function=‘str_replace(“lit_”,“”,@me) (功能:替换字符串)
函数七: function=MyDate(‘m-d’,@me) (功能:返回格林威治标准时间)
组合函数:function="html2text(cn_substr('@me',200))"(功能:提取指定个数的字符串并去掉html样式,转换为纯文本字符)
举例:
{dede:field.content function="Html2Text(cn_substr('@me',110))" /}
功能:获取栏目信息摘要信息(提取110个字符[55个汉字]),删除hml标签元素,转为纯文本! 本文章网址:http://www.ppssdd.com/code/12901.html。转载请保留出处,谢谢合作!
dedecms字符串截取函数怎么用
dedecms 的cn_substr_utf8字符串截取函数商榷
推荐学习:织梦cms
在phpsir看到的这篇文章,主要是说下dedecms 的cn_substr_utf8函数好像有些问题,研究dedecms的朋友可以看下
在dedecms里面 cn_substr_utf8 函数是这样的
代码如下:
/** * utf-8中文截取,单字节截取模式 * * @access public * @param string $str 需要截取的字符串 * @param int $slen 截取的长度 * @param int $startdd 开始标记处 * @return string */ if ( ! function_exists('cn_substr_utf8')) { function cn_substr_utf8($str, $length, $start=0) { if(strlen($str) < $start+1) { return ''; } preg_match_all("/./su", $str, $ar); $str = ''; $tstr = '';</p> <p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取 for($i=0; isset($ar[0][$i]); $i++) { if(strlen($tstr) < $start) { $tstr .= $ar[0][$i]; } else { if(strlen($str) < $length + strlen($ar[0][$i]) ) { $str .= $ar[0][$i]; } else { break; } } } return $str; } }
其中
代码如下:
if(strlen($str) < $length + strlen($ar[0][$i]) )
一行可能会造成截取后多了一个字符,可以考虑改为
代码如下:
if(strlen($str) < $length + strlen($ar[0][$i]) -1 )
测试代码如下
代码如下:
$f = "你好fasdfa你fasdf#e#"; $pos = strpos($f,''#e#''); var_dump($pos); var_dump(cn_substr_utf8($f,$pos)); var_dump(cn_substr_utf82($f,$pos));function cn_substr($str, $slen, $startdd=0) { global $cfg_soft_lang; if($cfg_soft_lang==''utf-8'') { return cn_substr_utf8($str, $slen, $startdd); } $restr = ''''; $c = ''''; $str_len = strlen($str); if($str_len < $startdd+1) { return ''''; } if($str_len < $startdd + $slen || $slen==0) { $slen = $str_len - $startdd; } $enddd = $startdd + $slen - 1; for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd) { $restr .= $c; }
if(ord($str[$i])>0x80) { if($str_len>$i+1) { $c = $str[$i].$str[$i+1]; } $i++; } else { $c = $str[$i]; }
if($i >= $enddd) { if(strlen($restr)+strlen($c)>$slen) { break; } else { $restr .= $c; break; } } } return $restr; }
function cn_substr_utf8($str, $length, $start=0) { if(strlen($str) < $start+1) { return ''''; } preg_match_all("/./su", $str, $ar);
$str = ''''; $tstr = '''';
//为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取 for($i=0; isset($ar[0][$i]); $i++) { if(strlen($tstr) < $start) {
$tstr .= $ar[0][$i]; } else {
if(strlen($str) < $length + strlen($ar[0][$i]) ) {
$str .= $ar[0][$i]; } else {
break; } } } return $str; }
function cn_substr_utf82($str, $length, $start=0) { if(strlen($str) < $start+1) { return ''''; } preg_match_all("/./su", $str, $ar);
$str = ''''; $tstr = '''';
//为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取 for($i=0; isset($ar[0][$i]); $i++) { if(strlen($tstr) < $start) {
$tstr .= $ar[0][$i]; } else {
if(strlen($str) < $length + strlen($ar[0][$i]) -1 ) // phpsir 加了 -1 {
$str .= $ar[0][$i]; } else {
break; } } } return $str; }
以上就是
php字符串截取函数用法分析,php字符串截取函数
php字符串截取函数用法分析,php字符串截取函数
本文实例分析了php字符串截取函数用法。分享给大家供大家参考。具体分析如下:
php自带的截取字符串的函数只能处理英文,数字的不能截取中文混排的,后面一个示例比较好用,第一个主要是给初学者学学用的,具体代码如下:
复制代码 代码如下:
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo "原字符串:".$str."
";
//按各种方式进行截取
$str1 = substr($str,5);
echo "从第5个字符开始取至最后:".$str1."
";
$str2 = substr($str,9,4);
echo "从第9个字符开始取4个字符:".$str2."
";
$str3 = substr($str,-5);
echo "取倒数5个字符:".$str3."
";
$str4 = substr($str,-8,4);
echo "从倒数第8个字符开始向后取4个字符:".$str4."
";
$str5 = substr($str,-8,-2);
echo "从倒数第8个字符开始取到倒数第2个字符为止:".$str5."
";
?>
支持中英文混合截取,代码如下:
复制代码 代码如下:
------------------------------------------------------
参数:
$str_cut 需要截断的字符串
$length 允许字符串显示的最大长度
程序功能:截取全角和半角(汉字和英文)混合的字符串以避免乱码
------------------------------------------------------
*/
function substr_cut($str_cut,$length)
{
if (strlen($str_cut) > $length)
{
for($i=0; $i if (ord($str_cut[$i]) > 128) $i++;
$str_cut = substr($str_cut,0,$i)."..";
}
return $str_cut;
}
?>
希望本文所述对大家的php程序设计有所帮助。
php字符串截取函数用法分析,php字符串截取函数_PHP教程
php字符串截取函数用法分析,php字符串截取函数
本文实例分析了php字符串截取函数用法。分享给大家供大家参考。具体分析如下:
php自带的截取字符串的函数只能处理英文,数字的不能截取中文混排的,后面一个示例比较好用,第一个主要是给初学者学学用的,具体代码如下:
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo "原字符串:".$str."
";
//按各种方式进行截取
$str1 = substr($str,5);
echo "从第5个字符开始取至最后:".$str1."
";
$str2 = substr($str,9,4);
echo "从第9个字符开始取4个字符:".$str2."
";
$str3 = substr($str,-5);
echo "取倒数5个字符:".$str3."
";
$str4 = substr($str,-8,4);
echo "从倒数第8个字符开始向后取4个字符:".$str4."
";
$str5 = substr($str,-8,-2);
echo "从倒数第8个字符开始取到倒数第2个字符为止:".$str5."
";
?>
支持中英文混合截取,代码如下:
------------------------------------------------------
参数:
$str_cut 需要截断的字符串
$length 允许字符串显示的最大长度
程序功能:截取全角和半角(汉字和英文)混合的字符串以避免乱码
------------------------------------------------------
*/
function substr_cut($str_cut,$length)
{
if (strlen($str_cut) > $length)
{
for($i=0; $i if (ord($str_cut[$i]) > 128) $i++;
$str_cut = substr($str_cut,0,$i)."..";
}
return $str_cut;
}
?>