php中utf 8编码下用正则表达式如何匹配汉字
需要用的php的正规匹配汉字,在网上找了些文章看了以下,看到这个的时候感觉这篇文章写的很真实,忍不住转过来了。
原文地址:http://hi.baidu.com/comdeng/blog/item/f272362e47ce29564ec226c5.html
在javascript中,要判断字符串是中文是很简单的。比如:
var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
alert("该字符串全部是中文");
} else {
alert("该字符串不全部是中文");
}
想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路:
<?php
$str = "php编程";
if (preg_match("/^[\u4e00-\u9fa5]+$/",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}
?>
不过,很快就会发现,php并不支持这样的表达,报错:
Warning
: preg_match() [function.preg-match
]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 3 in test.php
on line 3
刚开始从google上查了很多次,想从php正则表达式对于十六进制数据的表达方式上进行突破,发现在php中,是用\x表示十六进制数据的。于是,变换成如下的代码:
$str = "php编程";
if (preg_match("/^[\x4e00-\x9fa5]+$/",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}
貌似不报错了,判断的结果也正确,不过把$str换成“编程”两字,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。
后来跑回百度搜“php 匹配汉字 utf 8
”,发现文章的匹配程度竟然要比google的高多了,看来百度的“百度更懂中文”还在一定程度上是正确的。在第二篇文章《★★★ 求UTF8下匹配汉字的正则, 在线等.........
》中看到了如下的一些内容:
楼主zhiin(┈ Jcan ┈)2006-11-15 15:59:30 在 Web 开发 / PHP 提问
求UTF8下匹配汉字的正则, 不包括全角字符及特殊符号!
网上只能找到匹配全角字符的正则: ^[\x80-\xff]*^/
[\u4e00-\u9fa5]可以匹配中文,但是PHP又不支持
郁闷中.......
1 楼PleaseDoTellMeWhy(Allah bless you!)回复于 2006-11-15 16:04:55
相关文档:
cookie 常用于识别用户。
什么是 Cookie?
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
如何创建 cookie?
setcookie() 函数用于设置 cookie。
注释:setcookie() 函数必须位于 <ht ......
PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。
什么是 PHP 过滤器?
PHP 过滤器用于验证和过滤来自非安全来源的数据。
验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。
设计 PHP 的过滤器扩展的目的是使数据过滤更轻松快捷。
为什么使用过滤器?
几乎所有 web 应用程序都依 ......
最近我真是头大矣,我的博客里居然一夜间变成了php和asp的斗争场,甚至变成了windows和linux的斗争场。真是意想不到的。
我本来无意挑起windows和linux之间的争端,而且也非常不想去挑这种争端。
话说,其实我本身对linux操作系统是没有什么坏印象的,虽然自己的电脑上没有装过linux,但是在同学的电脑上用过,觉得它挺好 ......
When I deploy php application on apache, some problem come out, and solved. Here's the tips and problems solved.
0.How could I deploy an apache server armed with php, mysql, perl, and phpMyAdmin on the fly?
You need a package bundled with all these tools, xampp shall meet you needs, you can ......
1.基本类
//smarty_config.php
<?php
define('TEMPLATE_DIR','templates/');
define('COMPILE_DIR','templates_c/');
define('CONFIG_DIR','configs/');
define('CACHE_DIR','cache/');
?>
//View.class.php
<?php
//配置文件
require_once 'configs/smart_config.php';
//Smarty类
require('smarty/ ......