php正则判断中文字符

 更新时间:2016年11月25日 15:54  点击:1665
php正则判断中文字符

php教程正则判断中文字符

$str = "中国";
echo $str;
echo "<hr>";

//if   (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {   //只能在gb2312情况下使用
if   (preg_match("/^[x7f-xff]+$/", $str)) { //兼容gb2312,utf-8
     echo "正确输入";
} else {
     echo "错误输入";
}
?>


双字节字符编码范围

1. gbk (gb2312/gb18030)
x00-xff gbk双字节编码范围
x20-x7f ascii
xa1-xff 中文 gb2312
x80-xff 中文 gbk

2. utf-8 (unicode)

u4e00-u9fa5 (中文)
x3130-x318f (韩文
xac00-xd7a3 (韩文)
u0800-u4e00 (日文)

本文章提供的确款正则表达式来检测url地址,日期格式,ip地址,与邮箱地址是否合法的验证代码,希望本文章对各位同学会带来帮助。
 代码如下 复制代码
class validation{
 function check_email($value){ //check a email address
  return (bool) preg_match('/^[a-z0-9._%+-]+@(?:[a-z0-9-]+.)+[a-z]{2,4}$/i', $value);
 }
 
 function check_ip($value){ //check a ip address
  return (bool) preg_match("/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){4}$/", $value.".");
 }
 
 function check_date($date, $format="dd/mm/yy"){ //check a date
  if(!preg_match("/([0-9]+)([./-])([0-9]+)(\2)([0-9]+)/", $date, $m)) return false;
  $f = explode("/", $format);
  $d[$f[0]] = $m[1];
  $d[$f[1]] = $m[3];
  $d[$f[2]] = $m[5];
  return checkdate($d['mm'], $d['dd'], $d['yyyy'].$d['yy']);
 }
 
 function check_url($url){ //check a url
  return (bool) preg_match("/^(?:(?:ht|f)tp(?:s?)://|~/|/)?(?:(?:w+.)+)w+(?::d+)?(?:(?:/[^/?#]+)+)?/?(?:?[^?]*)?(#.*)?$/i", $url);
 }
}

//调用方法

 代码如下 复制代码
$validation = new validation();
//检测邮箱
var_dump($validation->check_email("abc@abc.abc.com"));//true
var_dump($validation->check_email("abc.abc@abc.com"));//false

//ip检测

 代码如下 复制代码
var_dump($validation->check_ip("127.0.0.1.0"));
var_dump($validation->check_ip("256.0.0.1"));

//日期格式检测

 代码如下 复制代码

//true
var_dump($validation->check_date("2010/1/20", "yyyy/mm/dd"));
var_dump($validation->check_date("1/20/10", "mm/dd/yy"));
var_dump($validation->check_date("2010-20-1", "yyyy/dd/mm"));
//false
var_dump($validation->check_date("2010/2/29", "yyyy/mm/dd"));
var_dump($validation->check_date("2010/1/20", "yyyy/dd/mm"));
var_dump($validation->check_date("2010-20/1", "yyyy/dd/mm"));

/*
此类的使用方法非常简单吧,只要创建类就可以轻松的验证邮箱,日期,地址,ip是否为合法的的哦。
*/

 

这是一款可以按时间日期来生成html类,他可以生成文件,同时也支持删除文件,删除目录,具有生成静态所有功能哦。

 

 代码如下 复制代码
class html
{
    var $dir; //dir for the htmls(www.111cn.net/)
    var $rootdir; //root of html files(www.111cn.net/):html
    var $name; //html文件存放路径
    var $dirname; //指定的文件夹名称
    var $url; //获取html文件信息的来源网页地址
    var $time; //html文件信息填加时的时间
    var $dirtype; //目录存放方式:year,month,,,,
    var $nametype; //html文件命名方式:name
   
   
    function html($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> setvar($nametype, $dirtype, $rootdir);
        }
   
    function setvar($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> rootdir = $rootdir;
        $this -> dirtype = $dirtype;
        $this -> nametype = $nametype;
        }
   
    function createdir($dir = '')
    {
        $this -> dir = $dir?$dir:$this -> dir;
       
        if (!is_dir($this -> dir))
            {
            $temp = explode('/', $this -> dir);
            $cur_dir = '';
            for($i = 0;$i < count($temp);$i++)
            {
                $cur_dir .= $temp[$i] . '/';
                if (!is_dir($cur_dir))
                    {
                    @mkdir($cur_dir, 0777);
                    }
                }
            }
        }
   
    function getdir($dirname = '', $time = 0)
    {
        $this -> time = $time?$time:$this -> time;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
       
        switch($this -> dirtype)
        {
        case 'name':
            if(empty($this -> dirname))
                $this -> dir = $this -> rootdir;
            else
                $this -> dir = $this -> rootdir . '/' . $this -> dirname;
            break;
        case 'year':
            $this -> dir = $this -> rootdir . '/' . date("y", $this -> time);
            break;
       
        case 'month':
            $this -> dir = $this -> rootdir . '/' . date("y-m", $this -> time);
            break;
       
        case 'day':
            $this -> dir = $this -> rootdir . '/' . date("y-m-d", $this -> time);
            break;
            }
       
        $this -> createdir();
       
        return $this -> dir;
        }
   
    function geturlname($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $filename = basename($this -> url);
        $filename = explode(".", $filename);
        return $filename[0];
        }
   
    function geturlquery($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $durl = parse_url($this -> url);
        $durl = explode("&", $durl[query]);
        foreach($durl as $surl)
        {
            $gurl = explode("=", $surl);
            $eurl[] = $gurl[1];
            }
        return join("_", $eurl);
        }
   
    function getname($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getdir();
       
        switch($this -> nametype)
        {
        case 'name':
            $filename = $this -> geturlname() . '.htm';
            $this -> name = $this -> dir . '/' . $filename;
            break;
       
        case 'time':
            $this -> name = $this -> dir . '/' . $this -> time . '.htm';
            break;
       
        case 'query':
            $this -> name = $this -> dir . '/' . $this -> geturlquery() . '.htm';
            break;
       
        case 'namequery':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> geturlquery() . '.htm';
            break;
       
        case 'nametime':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> time . '.htm';
            break;
           
            }
        return $this -> name;
        }
   
    function createhtml($url = '', $time = 0, $dirname = '', $htmlname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
        // 上面保证不重复地把变量赋予该类成员
        if(empty($htmlname))
            $this -> getname();
        else
            $this -> name = $dirname . '/' . $htmlname; //得到name
       
       
        $content = file($this -> url) or die("failed to open the url " . $this -> url . " !");;
       
        // /////////////关键步---用file读取$this->url
       
        $content = join("", $content);
        $fp = @fopen($this -> name, "w") or die("failed to open the file " . $this -> name . " !");
        if(@fwrite($fp, $content))
            return true;
        else
            return false;
        fclose($fp);
        }
    // ///////////////以name为名字生成html
    function deletehtml($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getname();
       
        if(@unlink($this -> name))
            return true;
        else
            return false;
        }
   
    /**
     * function::deletedir()
     * 删除目录
     *
     * @param $file 目录名(不带/)
     * @return
     */
    function deletedir($file)
    {
        if(file_exists($file))
            {
            if(is_dir($file))
                {
                $handle = opendir($file);
                while(false !== ($filename = readdir($handle)))
                {
                    if($filename != "." && $filename != "..")
                        $this -> deletedir($file . "/" . $filename);
                    }
                closedir($handle);
                rmdir($file);
                return true;
                }else{
                unlink($file);
                }
            }
        }
   
    }

[ajax介绍]

  ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的web用户界面。

  异步网页特效和xml(ajax)不是什么新技术,而是使用几种现有技术——包括级联样式表(css教程)、网页特效、xhtml、xml和可扩展样式语言转换(xslt),开发外观及操作类似桌面软件的web应用软件。

  [ajax执行原理]

  一个ajax交互从一个称为xmlhttprequest的javascript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行http请求,并且将会解析一个xml格式的服务器响应。ajax处理过程中的第一步是创建一个xmlhttprequest实例。使用http方法(get或post)来处理请求,并将目标url设置到xmlhttprequest对象上。

  当你发送http请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向xmlhttprequest注册一个回调函数,并异步地派发xmlhttprequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

 

php父类与子类读取数据代码是一填二级分类的程序代码,该程序可以根据父的数据查找出其子类的数据哦。

 代码如下 复制代码

function getsubcomments($parent = 0, $level = 0) {
$db = &jfactory::getdbo();

$sql = "..."; // 查询记录的sql
$db->setquery($sql);
$rows = $db->loadobjectlist();

$list = array();

// 先从数据得到记录集,再对记录添加level, 父层level = 0,它的下级level = 1,如此类推
foreach ($rows as $row) {
$row->level = $level;
$list[] = $row;

$tmparr = getsubcomments($row->id, $level + 1); // 递归调用
if (count($tmparr)) {
foreach ($tmparr as $tmprow) {
$list[] = $tmprow;
}
}
}

return $list;
}

$list = array();
foreach ($tmplist as $row) {
$row->level = 0;
$list[] = $row;
$tmplist2 = getsubcomments($row->id, 1);
foreach ($tmplist2 as $row2) {
$list[] = $row2;
}
}

// 按level分层次输出内容
if ($row->level) {
$pre = '';
for ($n = 0; $n < $row->level; $n++)
$pre .= '----';

echo $pre . '|- ';
}
echo strip_tags($row->content);

 

[!--infotagslink--]

相关文章

  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • 一个奇葩的最短的 IE 版本判断JS脚本

    使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
  • c# 判断是否为空然后赋值的4种实现方法

    下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
  • PHP中empty和isset对于参数结构的判断及empty()和isset()的区别

    废话不多说了,直接给大家贴代码了。<&#63;php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • C#获得程序的根目录以及判断文件是否存在的实例讲解

    今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • JS基于正则截取替换特定字符之间字符串操作示例

    这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
  • 从PHP $_SERVER相关参数判断是否支持Rewrite模块

    如果是http://www.jb51.net/p1141.html形式的URL,可通过$_SERVER['REQUEST_URI']和$_SERVER['QUERY_STRING']值的区别来分析,最主要是如果页面是通过重定向会产生$_SERVER['REDIRECT_QUERY_STRING']和$_SERVER['REDIREC...2013-10-04
  • JavaScript判断DIV内容是否为空的方法

    整体思路是这样的:判断div内部是否为空,如果为空,给出无数据提示;否则显示正常页面,下面给大家分享js判断div内容是否为空的方法,对判断div内容是否为空的相关知识感兴趣的朋友一起学习吧...2016-02-01