当前位置:  编程技术>php
本页文章导读:
    ▪PHP中文字符串截取的四个函数      本节内容: 中文字符串截取 例1,普通中文字符串的截取   代码示例: <?php function sysSubStr($string,$length,$append = false) {     if(strlen($string) <= $length )     {         return $string; .........
    ▪php禁止提交空表单(php空值判断)的方法      本节内容: php禁止提交空表单 如何在php编程中,判断表单中的空值呢?也就是对某些表单项禁止空值的提交。 1,可以修改代码,添加些判断:   代码示例: <?php if(empty($_POST['name'])){   .........
    ▪PHP二维数组元素个数的统计方法      本节内容: PHP二维数组元素个数 数据表中的字段 content 存储了一个以逗号分割的字符串,最大有20个数,最大数字为40。比如3,24,33,40类似字样的数字序列。 一个保存了多项投票结果的字段.........

[1]PHP中文字符串截取的四个函数
    来源: 互联网  发布时间: 2013-12-24

本节内容:
中文字符串截取

例1,普通中文字符串的截取
 

代码示例:

<?php
function sysSubStr($string,$length,$append = false)
{
    if(strlen($string) <= $length )
    {
        return $string;
    }
    else
    {
        $i = 0;
        while ($i < $length)
        {
            $stringTMP = substr($string,$i,1);
            if ( ord($stringTMP) >=224 )
            {
                $stringTMP = substr($string,$i,3);
                $i = $i + 3;
            }
            elseif( ord($stringTMP) >=192 )
            {
                $stringTMP = substr($string,$i,2);
                $i = $i + 2;
            }
            else
            {
                $i = $i + 1;
            }
            $stringLast[] = $stringTMP;
        }
        $stringLast = implode("",$stringLast);
        if($append)
        {
            $stringLast .= "...";
        }
        return $stringLast;
    }
}

$string = " —— 专注于互联网主流的各种技术";
$length = "27";
$append = true;
echo sysSubStr($string,$length,$append);
// 输出
// —— 专...
?>

例2,截取GB2312中文字符串:
 

代码示例:
<?php
//截取中文字符串
function mysubstr($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;
}
?>

例3,截取utf8编码的多字节字符串:
 

代码示例:
<?php
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                       '$1',$str);
}
?>

例4,UTF-8、GB2312都支持的汉字截取函数:
 

代码示例:

<?php
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/

function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
    if($code == 'UTF-8')
    {
        $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
        preg_match_all($pa, $string, $t_string);

        if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
        return join('', array_slice($t_string[0], $start, $sublen));
    }
    else
    {
        $start = $start*2;
        $sublen = $sublen*2;
        $strlen = strlen($string);
        $tmpstr = '';

        for($i=0; $i< $strlen; $i++)
        {
            if($i>=$start && $i< ($start+$sublen))
            {
                if(ord(substr($string, $i, 1))>129)
                {
                    $tmpstr.= substr($string, $i, 2);
                }
                else
                {
                    $tmpstr.= substr($string, $i, 1);
                }
            }
            if(ord(substr($string, $i, 1))>129) $i++;
        }
        if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
        return $tmpstr;
    }
}

$str = "abcd需要截取的字符串";
echo cut_str($str, 8, 0, 'gb2312');
?>

您可能感兴趣的文章:
php中文支持函数 php中文截取字符串函数 PHP中文字符串翻转
php 截取中文字符串无乱码(ord()、substr()函数)
php中文字符截取函数(自用)
php字符截取中文防乱码用.chr(0)解决的方法
php中文截取字符串mb_substr的用法
php字符串截取substr函数简介
php截取中文的函数utf_substr
支持中文的php字符串截取函数实例
php截取中文字符串乱码如何解决呢
php字符串截取(substr的应用与扩展)
php截取中文字符串的二个函数(iconv_substr和mb_substr)
php 字符串截取函数(可以自动清除网页标签)
php截取中文字符(utf-8格式)的函数
php中文字符串截取函数支持多种编码
四个php中文字符串截取函数
php中文字符串截取 php截取中文字符串的代码
php中文字符串截取 php截取中文字符串的函数
php中文字符串截取(mb_substr)实例
截取中文字符的函数-csubstr
PHP中文字符串截取函数


    
[2]php禁止提交空表单(php空值判断)的方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php禁止提交空表单

如何在php编程中,判断表单中的空值呢?也就是对某些表单项禁止空值的提交。

1,可以修改代码,添加些判断:
 

代码示例:
<?php
if(empty($_POST['name'])){
  echo "俗话说的好,雁过留声人过留名<br />";
 }
 elseif(empty($_POST['comment'])){
  echo "矮油,多说几句吧~";
 }
 else{
  $sql = "INSERT INTO myblog_comments(blog_id, dateposted, name, comment) VALUES(" . $validentry . ", NOW(), '" . $_POST['name'] . "', '" . $_POST['comment'] . "');";
  mysql_query()($sql);
  header("Location: http://". $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']."?id=" . $validentry);
 }

2,PHP空值判断
empty 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置。

二者的区别:empty还会检测变量是否为空、为零。
当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。

例子:
 

代码示例:
<?php
/*比如检测 $id 变量,当 $id=0 时,用empty 和 isset 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty 认为没有配置,isset 能够取得 $id 的值:*/
    $id=0;
    empty($id)?print "It's empty .":print "It's $id .";
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .
?>

总结:
PHP中,“NULL” 和 “空” 是2个概念。
isset  主要用来判断变量是否被初始化过
empty  可以将值为 “假”、“空”、“0”、“NULL”、“未初始化” 的变量都判断为TRUE
is_null  仅把值为 “NULL” 的变量判断为TRUE
var == null  把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE
var === null  仅把值为 “NULL” 的变量判断为TRUE
因此,在判断一个变量是否真正为“NULL”时,大多使用 is_null,从而避免“false”、“0”等值的干扰。


    
[3]PHP二维数组元素个数的统计方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
PHP二维数组元素个数

数据表中的字段 content 存储了一个以逗号分割的字符串,最大有20个数,最大数字为40。比如3,24,33,40类似字样的数字序列。
一个保存了多项投票结果的字段。

需求:
统计每个数字的个数,即每个投票项有多少人投了,并排序。

首先,从数据库的congtent字段读取数据,并把它们合并成一个字符串。
 

代码示例:

<?php
 while($myrow = $connector -> fetch_array($result))
 {
  //$r[] = explode()(",", $myrow["content"]);
  $str .= $myrow["content"].',';
 }

 $arr_str = substr($str, 0, -1);
?>
 

由于最后一个数后面有逗号,所以要对字符串进行截取。

然后,将字符串按逗号分割成数组。
 

代码示例:
$r = explode(",", $arr_str);

用 array_count_values() 统计一维数组的元素个数
由于array_count_values()貌似不能直接对二维数组的元素进行个数统计,所以进行了上面的两个步骤,得到一个一维数组。
array_count_values() 函数用于统计数组中所有值出现的次数。返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
$rs = array_count_values($r);

最后,进行排序:
 

代码示例:
<?php
asort($rs);
echo '<pre>';
print_r($rs);
echo '</pre>';

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3