WordPress中文截取函数用法分析
“Zpressen”通过精心收集,向本站投稿了7篇WordPress中文截取函数用法分析,下面是小编整理后的WordPress中文截取函数用法分析,欢迎您能喜欢,也请多多分享。
篇1:WordPress中文截取函数用法分析
很多朋友直接使用php substr函数截取中文是会出现乱码,下面我先来给各位总结中文字符截取的函数,然后以wordpress截取中文标题为例给大家介绍实例应用.
中文截取函数,代码如下:
代码如下:function utf8_trim($str)
{
$len = strlen($str);
for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ‘ ‘.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}
function mul_excerpt ($excerpt,$excerpt_length) {
$myexcerpt = substr($excerpt,0,$excerpt_length);
return utf8_trim($myexcerpt) . ‘… ‘;
}
或者这样也可以
代码如下://自动截断不乱码
// jieduan luanma
/////////////////
function Limit_Char($max_char = 200, $more_text = ‘...‘, $more_link_text = ‘‘, $limit_type = ‘content‘) {
if ($limit_type == ‘title‘) { $limiter = get_the_title; }
else { $limiter = get_the_content(); }
$limiter = apply_filters(‘the_content‘, $limiter);
$limiter = strip_tags(str_replace(‘]]>‘, ‘]]>‘, $limiter));
if (strlen($limiter) >$max_char) {
$limiter = substr($limiter, 0, $max_char+1);
$limiter = utf8_conver($limiter);
echo $limiter;
echo $more_text;
if ($more_link_text != ‘‘) {
echo ‘ ‘.$more_link_text.‘‘;
}
} else {
echo $limiter;
}
}
function utf8_conver($str) {
$len = strlen($str);
for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ‘ ‘.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}
截取中文标题,代码如下:
代码如下:echo ‘
‘. mb_substr(get_the_title(),0,18,“utf8”).“...” .‘
‘;这样会出现乱码的,我在functions.php加入上面的中文截取代码,然后在想要截取标题的位置,添加get_short_title(),目的就达到,详细代码如下:
代码如下:echo ‘
‘;
get_short_title(18);
echo ‘
‘. get_the_time(‘n月j日‘) .‘‘;当然,其他地方这样调用也可以,代码如下:
代码如下:希望本文所述对大家的WordPress建站有所帮助,
篇2:Excel截取中文的综合函数应用举例
在Excel里,可以根据函数截取各种字符,仍然,却没有截取中文的函数,
因此,要想让Excel能够截取单元格中的中文汉字,我们就必须借助多个函数,实现综合应用,才能截取相应的汉字。
以下是举例,希望对您有帮助。
如下表。
看好了,单元格A1中的内容,是中文和其它英文字符数据的混合,请注意,中文要么在左边要么在右边,并且,必须是连续的,如上图一样,这样,才能够通过综合函数截取出来。
一、截取除汉字之外的字符
如下图。
通过公式:=RIGHT(A1,LEN(A1)*2-LENB(A1))
就可以实现截取。
二、截取汉字
如下图。
直接通过公式:=LEFT(A1,LEN(A1)*2-LENB(A1))
就可以截取。
如上的截取,函数都很简单,但是难以理解,下面,给您逐一介绍。
三、综合函数分析
LEFT函数,我们都是知道,左截取字符的函数。指的是从左边开始截取。同类,RIGHT函数是右截取函数。
LEFT函数中文语法可以理解为:LEFT(A1,截取长度),即从左边第一位开始截取字符串,截取指定的长度,
A1为要截取的对象。RIGHT函数同理,就不再介绍了。
现在,我们来仔细分析如上的综合函数::=LEFT(A1,LEN(A1)*2-LENB(A1))
套用如上的LEFT的中文语法,可理解为LEFT(A1,截取长度),即截取长度这个参数的值相当于LEN(A1)*2-LENB(A1)。
LEN函数是用于求一个字符串的长度的。而LENB函数是用来求一个字符串的字节数量的。
注意,无论大小英文、中文或其它符号,通过LEN求长度,每个字符只占一个单位。而LENB函数求字节大小时,中文中两个单位,而非中文只占一个单位。至于这两个函数的介绍,请参阅文章:www.dzwebs.net/3164.html
举例:假设A1单元格的内容是:大众计算机6789
那么,LEN(A1)返回值为:9,即每个字符占一个单位,共有九个,因此返回九。
LENB(A1),用来求A1单元格的内容的字节数,返回14.
现在,我们的理论是来源于这种思想的,A1单元格的字符长度的两倍即LEN(A1)*2减去A1单元格的字节数,就等于中文的所占的长度。
LEN(A1)*2相当于把A1中的内容,每个字符按两个长度来算。
所以才会推论出:=LEFT(A1,LEN(A1)*2-LENB(A1))公式截取左边的中文。
当然,LEFT和RIGHT函数,不管中文还是英文还是其它符号,每个字一律按一个长度来算。只有LENB函数会将一个中文以两个长度来计算。
篇3:自己写的php中文截取函数mbstrlen和mbsubstr
这篇文章主要介绍了自己写的php中文截取函数mb_strlen和mb_substr,在服务器没mbstring库时可以使用本文函数代替,需要的朋友可以参考下
众所周知,php 自带的 strlen 与 substr 函数没法处理中文字符,于是,我们会用 mb_ 系列函数替代,但是,没有 mbstring 库怎么办?这就需要我们自己写一个来替代了,废话不多说,先上代码:
代码如下:
if ( !function_exists(‘mb_strlen‘) ) {
function mb_strlen ($text, $encode) {
if ($encode==‘UTF-8‘) {
return preg_match_all(‘%(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)%xs‘,$text,$out);
}else{
return strlen($text);
}
}
}
/* from Internet, author unknown */
if (!function_exists(‘mb_substr‘)) {
function mb_substr($str, $start, $len = ‘‘, $encoding=“UTF-8”){
$limit = strlen($str);
for ($s = 0; $start >0;--$start) {// found the real start
if ($s >= $limit)
break;
if ($str[$s] <= “\x7F”)
++$s;
else {
++$s; // skip length
while ($str[$s] >= “\x80” && $str[$s] <= “\xBF”)
++$s;
}
}
if ($len == ‘‘)
return substr($str, $s);
else
for ($e = $s; $len >0; --$len) {//found the real end
if ($e >= $limit)
break;
if ($str[$e] <= “\x7F”)
++$e;
else {
++$e;//skip length
while ($str[$e] >= “\x80” && $str[$e] <= “\xBF” && $e < $limit)
++$e;
}
}
return substr($str, $s, $e - $s);
}
}
篇4:python函数局部变量用法实例分析
作者:东郭先生 字体:[增加 减小] 类型:
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
一、使用局部变量
示例如下:
#!/usr/bin/python# Filename: func_local.pydef func(x): print ‘x is‘, x x = 2 print ‘Changed local x to‘, xx = 50func(x)print ‘x is still‘, x
输出:
$ python func_local.pyx is 50Changed local x to 2x is still 50
工作原理:
在函数中,我们第一次使用x的 值 的时候,Python使用函数声明的形参的值。
接下来,我们把值2赋给x。x是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。
在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响,
二、使用global语句
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。
使用global语句示例:
#!/usr/bin/python# Filename: func_global.pydef func: global x print ‘x is‘, x x = 2 print ‘Changed local x to‘, xx = 50func()print ‘Value of x is‘, x
输出:
$ python func_global.pyx is 50Changed global x to 2Value of x is 2
工作原理:
global语句被用来声明x是全局的――因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。
你可以使用同一个global语句指定多个全局变量。例如global x, y, z。
希望本文所述对大家的Python程序设计有所帮助。
篇5:python函数形参用法实例分析
作者:不是JS 字体:[增加 减小] 类型:转载
这篇文章主要介绍了python函数形参用法,较为详细的讲述了Python函数形参的功能、定义及使用技巧,需要的朋友可以参考下
本文实例讲述了python函数形参用法,分享给大家供大家参考。具体如下:
函数形参:
函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。
参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。注意我们使用过的术语――函数中的参数名称为 形参 而你提供给函数调用的值称为 实参 。
使用函数形参:
#!/usr/bin/python# Filename: func_param.pydef printMax(a, b): if a >b: print a, ‘is maximum‘ else: print b, ‘is maximum‘printMax(3, 4) # directly give literal valuesx = 5y = 7printMax(x, y) # give variables as arguments
运行结果如下:
4 is maximum
7 is maximum
工作原理:
这里,我们定义了一个称为printMax的函数,这个函数需要两个形参,叫做a和b,
我们使用if..else语句找出两者之中较大的一个数,并且打印较大的那个数。
在第一个printMax使用中,我们直接把数,即实参,提供给函数。在第二个使用中,我们使用变量调用函数。printMax(x, y)使实参x的值赋给形参a,实参y的值赋给形参b。在两次调用中,printMax函数的工作完全相同。
希望本文所述对大家的Python程序设计有所帮助。
篇6:Go语言中append函数用法分析
作者:books1958 字体:[增加 减小] 类型:
这篇文章主要介绍了Go语言中append函数用法,对比使用append函数与不使用append函数的两个实例,详细分析了Go语言中append函数的功能,需要的朋友可以参考下
本文实例分析了Go语言中append函数用法,分享给大家供大家参考。具体如下:
Go语言中append的功能十分强大,使用它可以使很多功能的实现变得更加简洁。以下为简单对比:
.将一个slice插入到另一个slice的指定位置:
不使用append:
代码如下:
func insertSliceAtIndex(slice_origin []int, slice_to_insert []int,
insertIndex int) (result []int, err error) {
if insertIndex >len(slice_origin) {
return nil, errors.New(“insertIndex不能大于slice_origin的长度”)
}
result = make([]int, len(slice_origin)+len(slice_to_insert))
for i := 0; i < len(result); i++ {
if i < insertIndex { //插入点之间
result[i] = slice_origin[i]
} else if i < insertIndex+len(slice_to_insert) { //插入内容
result[i] = slice_to_insert[i-insertIndex]
} else {
result[i] = slice_origin[i-len(slice_to_insert)]
}
}
return
}
使用append时,代码将十分简洁:
代码如下:
d := []string{“Welcome”, “for”, “Tianjin”, “Have”, “a”, “good”, “journey”}
insertSlice := []string{“It”, “is”, “a”, “big”, “city”}
insertSliceIndex := 3
d = append(d[:insertSliceIndex],
append(insertSlice, d[insertSliceIndex:]...)...)
fmt.Printf(“result:%v\n”, d)
希望本文所述对大家的Go语言程序设计有所帮助,
篇7:GO语言延迟函数defer用法分析
defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理、释放资源、清理数据、记录日志等。这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一。
代码1:了解 defer 的执行顺序
代码如下:
package main
import “fmt”
func fn(n int) int {
defer func() {
n++
fmt.Println(“3st:”, n)
}()
defer func() {
n++
fmt.Println(“2st:”, n)
}()
defer func() {
n++
fmt.Println(“1st:”, n)
}()
return n //没有做任何事情
}
func main() {
fmt.Println(“函数返回值:”, fn(0))
}
输出:
1st: 1
2st: 2
3st: 3
函数返回值: 0
代码2:经典应用实例
代码如下:
func CopyFile(dst, src string) (w int64, err error) {
srcFile, err := os.Open(src)
if err != nil {
return
}
defer srcFile.Close() //每次申请资源时,请习惯立即申请一个 defer 关闭资源,这样就不会忘记释放资源了
dstFile, err := os.Create(dst)
if err != nil {
return
}
defer dstFile.Close()
return io.Copy(dstFile, srcFile)
}
defer 还有一个重要的特性,就是即便函数抛出了异常,也会被执行的,
这样就不会因程序出现了错误,而导致资源不会释放了。
希望本文所述对大家的GO语言程序设计有所帮助。
【WordPress中文截取函数用法分析】相关文章:
9.函数教案
10.函数课件






文档为doc格式