首页 > 编程技术 > php

php 正则表达式匹配中文汉字

发布时间:2016-11-25 17:33

文章告诉你如何利用php 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法。

preg_match("/[a-z]{3,14}/",$content,[可选]$a);这个返回布尔值,$a得到的是数组,把匹配到的字符防在$a;


正则汉字

echo (mb_eregi("[x80-xff].","中d文") ? "有" : "无") ."汉字";
echo (mb_eregi("^([x80-xff].)+$","中文") ? "全是汉字" : "");

看一判断全中文字符串函数

$str = "请问php中的eregi如何匹配汉字";
if (preg_match("/^[".chr(0x80)."-".chr(0xff)."]+$/",$str)) {
   echo "这是一个纯中文字符串";
} else{
   echo "这不是一个纯中文字串";
}

preg_match_all($pat,……)与preg_replace($pat,……)……

 

preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!",$m_a);


了各个编码的高位与低位的开始与结束,那么自然就可以写出正则,而且直接是十六位的,有啥困难?呵呵。不过要注意,在php里面,表示十六位是用的x。

所以如上,我们还可以用该正则表达式来判断是否是gb2312的汉字

<?php
$str = "小小子";
if(preg_match("/^[xb0-xf7][xa0-xfe]+$/",$str)){
print($str."确实全是汉字");
} else {
print($str."这个真tc不全是汉字");
}
?>

利用fopen fread  fwrite fcolse打开文件形式

<?php
$fp = fopen ("templets.html","a");
if ($fp){
$fup = fread ($fp,filesize("templets.html"));
$fp2 = fopen ("html.shtml","w");
if ($fwrite ($fp2,$fup)){
$fclose ($fp);
$fcolse ($fp2);
die ("写入模板成功");
} else {
fclose ($fp);
die ("写入模板失败!");
}
}
?>

php读取文件,fread是用来读取用fopen打开的文件内容的,下面我们就来看看fread与gets 实例教程吧.

定义和用法
fread() 函数读取文件(可安全用于二进制文件)。

语法
fread(file,length)参数 描述
file 必需。规定要读取打开文件。
length 必需。规定要读取的最大字节数。

说明
fread() 从文件指针 file 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 eof 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。

<?php
$file = fopen("test.txt","r");
fread($file,filesize("test.txt"));
fclose($file);
?>


更多详细内容请查看:http://www.111cn.net/phper/18/753bc9c01fa5a721a81c63887ddccb47.htm

缓存输出 ob_end_clean ob_start ob_get_length ob_get_contents函数

<?php
$s_fname = "93e.php";
$o_fname = "93e.htm";
ob_end_clean();
ob_start();
include($s_fname);
$length = ob_get_length();
$buffer = ob_get_contents();
$buffer = eregi_replace("r","",$buffer);
ob_end_clean();

$fp = fopen($o_fname,"w+");
fwrite($fp,$buffer);
fclose($fp);
?>


三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"

ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里;
ob_get_contents():是读出缓冲区里的内容,下面有代码为例;
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来

更多详细内容请查看:http://www.111cn.net/phper/php-cy/35433.htm

在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。

//最简单的方法

$ip = $_server['remote_addr'];

//上面的方法只要使用了代理你就无法得到真实ip地址,下面有更详细的方法

echo "remote addr: " . $_server['remote_addr']."<br/>";
echo "x forward: " . $_server['http_x_forwarded_for']."<br/>";
echo "clien ip: " . $_server['http_client_ip']."<br/>";

//好了来看一个实例。

function getip() {   
 $ip = $_server['remote_addr'];    
 if (!empty($_server['http_client_ip'])) {       
  $ip = $_server['http_client_ip'];   
 } elseif (!empty($_server['http_x_forwarded_for'])) {       
  $ip = $_server['http_x_forwarded_for'];   
 }   
  return $ip;
}

/*
如果是是加密的代理是无法获取真实ip地址的。

$validcharacters = "abcdefghijklmnopqrstuxyvwzabcdefghijklmnopqrstuxyvwz+-*#&@!?";
$index = mt_rand(0, 10);
echo $index;

//看一款复杂一点的

$validcharacters = "abcdefghijklmnopqrstuxyvwzabcdefghijklmnopqrstuxyvwz+-*#&@!?";
$validcharnumber = strlen($validcharacters);
$index = mt_rand(0, $validcharnumber-1);
$randomcharacter = $validcharacters[$index];
echo $randomcharacter;

//实例二

$length = 5;
$result = "";
for ($i = 0; $i < $length; $i++) {   
 $index = mt_rand(0, $validcharnumber-1);   
 $result .= $validcharacters[$index];
}

//

function getrandomstring($length = 6) {   
 $validcharacters = "abcdefghijklmnopqrstuxyvwzabcdefghijklmnopqrstuxyvwz+-*#&@!?";   
 $validcharnumber = strlen($validcharacters);    
 $result = "";    
 for ($i = 0; $i < $length; $i++) {       
  $index = mt_rand(0, $validcharnumber - 1);       
  $result .= $validcharacters[$index];   
 }    
 return $result;
}
echo getrandomstring();

php获取当前页面url地址及参数 要获取当前页面的完整地址我们要经过很多操作如HTTP或HTTPS php文件与路径 主机域名 查询参数最后就成了。

获取协议 - http
url的协议,可以读出在$ _server ['server_protocol']变量。
*/

echo $_server['server_protocol'];

/*
如果你检查值,可以发现,不只是http或https,但这样的字符串:http/1.1的

*/

$protocol = strpos(strtolower($_server['server_protocol']),'https')  === false ? 'http' : 'https';

/*
获取主机域名*/

$host = $_server['http_host'];

/*
利用$ _server['script_name']获取除域名外的php文件与路径

*/

$script = $_server['script_name'];


//获取?后面查询参数

$params = $_server['query_string'];


//方法二
$uri = $_server['request_uri'];

//下面来看一个完整的获取当前url实例

$protocol = strpos(strtolower($_server['server_protocol']),'https')   === false ? 'http' : 'https';
$host     = $_server['http_host'];
$script   = $_server['script_name'];
$params   = $_server['query_string'];
$currenturl = $protocol . '://' . $host . $script . '?' . $params;
echo $currenturl;

标签:[!--infotagslink--]

您可能感兴趣的文章: