<!--
文件名称:SubStr.php
功 能:中文字符截取
作 者:特蓝克斯
建立时间:2007-3-22
注 释:网络收集一篇关于字符截取的代码
-->
<?PHP
$str="这个字符好长呀";
$Short_Str=cSubStr($str,0,5);//截取前面4个汉字,结果为:这个字符...
Echo "$Short_Str";
/*
======================================================
$str 字符
$start 字符截取位置
$len 截取字符的数
======================================================
*/
Function cSubStr($str,$start,$len) //设置3个参数
{
$strlen=strlen($str); // 获取字符长度
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
if ($clen>=$start+$len) //当大于截取字符数,则跳出循环
break;
if(ord(substr($str,$i,1))>0xa0) //ord 本函数返回字符的 ASCII (
美国国家标准交换码) 序数值。本函数和chr()函数相反。
{ //0xa0 代表 十进制 160,0xa0表示汉字的开始
if ($clen>=$start) //判断截取位置
$tmpstr.=substr($str,$i,2); //中文截取两个字符
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1); //非中文截取一个字符
}
}
$tempstr = $tmpstr;
if ($str<>$tempstr)
$tempstr .= "..."; //要以什么结尾,修改这里就可以.
return $tempstr;
}
?>
<?php
/**
@title:Label_Content 函数
@author:特蓝克斯
@date:2007-05-09
@功能:提取$Label参数标签之间的内容,利用正则 preg_match 提取标签的内容
@Note:提取规则中间不允许有回车符。
例如:
正确
<a href=#>超链接</a>
错误
<a href=#>
超链接
</a>
*/
$lstr="
<HTML>
<HEAD>
<TITLE> 特蓝克斯 </TITLE>
</HEAD>
<BODY>
<a href='#'>超链接标记</a>
<asen>自定义的标签</asen>
</BODY>
</HTML>
";
function Label_Content($Label,$Content) {
preg_match("/(\<".$Label.".*?\>)(.*?)(\<\/".$Label."\>)/i",$Content,$matches);
return $matches;
}
echo ("<pre>");
echo ("<textarea cols='100' rows='25'>");
print_r (Label_Content("title",$lstr));
print_r (Label_Content("a",$lstr));
print_r (Label_Content("asen",$lstr));
echo ("<body>标签之间有'回车符'所以无法提取相应的标签中的值:");
print_r (Label_Content("body",$lstr));
echo ("即返回数据为空");
echo ("</textarea>");
echo "</pre>";
?>