<?
$a='english';
$b='中文';
$c='english&中文';
function chkGB($Str) {
$StrLen = strlen($Str);
$Length = 1;
for($i = 0;$i < $StrLen;$i ) {
$TmpStr = ord(substr($Str,$i,1));
$TmpStr2 = ord(substr($Str,$i 1,1));
if(($TmpStr <= 161 || $TmpStr >=247) && ($TmpStr2 <= 161 || $TmpStr2 >=247)) {
$LegalFlag = 0;
break;
}else {
$LegalFlag = 1;
}
}
return $LegalFlag;
}
echo chkGB($a).','.chkGB($b).','.chkGB($c);
?>
禁止IP的函数
<?
function check_ip($range,$ip='') {
if($ip == '') $ip = getenv("REMOTE_ADDR");
if ($ip == "127.0.0.1") return 1;
$result = 1;
if (ereg("([0-9] ).([0-9] ).([0-9] ).([0-9] )/([0-9] )",$range,$regs)) {
$ipl = ip2long($ip);
$rangel = ip2long($regs[1] . "." . $regs[2] . "." . $regs[3] . "." . $regs[4]);
$maskl = 0;
for ($i = 0; $i< 31; $i ) {
if ($i < $regs[5]-1) {
$maskl = $maskl pow(2,(30-$i));
}
}
if (($maskl & $rangel) == ($maskl & $ipl)) {
return 1;
} else {
return 0;
}
} else {
$maskocts = split(".",$range);
$ipocts = split(".",$ip);
for ($i=0; $i<4; $i ) {
if (ereg("[([0-9] )-([0-9] )]",$maskocts[$i],$regs)) {
if ( ($ipocts[$i] > $regs[2]) || ($ipocts[$i] < $regs[1])) {
$result = 0;
}
}
else
{
if ($maskocts[$i] <> $ipocts[$i]) {
$result = 0;
}
}
}
}
return $result;
}
function auth_ip(){
$result = 0;
$null_check = 1;
$path = "ip.cf"; //ip限制配置文件,每行的格式为
/*
xxx.xxx.xxx.xxx 比如 127.0.0.2
xxx.xxx.xxx.[yyy-zzz] 比如 1270.0.0.[2-23]
xxx.xxx.xxx.xxx/nn 比如 127.0.0.0/24
*/
$fg=@fopen($path,"r");
while($line=@fgets($fg,1024)){
$line = trim($line);
$line=ereg_replace("#.*","",$line);
if ($line != ""){
$null_check = 0;
if (check_ip($line)) {
fclose($fg);
return 1;
}
}
}
@fclose($fg);
if ($null_check == 1) return 1;
return $result;
}
?>
PHP的几个配置文件函数
以前一直没注重,今天听同事讲起,马上看看,功能强大。
php的配置函数就是几个ini_*的函数,主要是针对配置文件的操作,其实就四个函数:ini_get、ini_set、ini_get_all、ini_restore。个人感觉最有用的就是ini_set和ini_get。
* ini_get():获取配置文件的选项值
这个函数相信很多人都使过,就是获取配置文件中某一个选项的值,假如是true值就返回1,假如是false值就返回0,字符串就返回字符串。
比如手册中的例子:
<?php
/*
Our php.ini contains the following settings:
display_errors = On
register_globals = Off
post_max_size = 8M
*/
echo 'display_errors = ' . ini_get('display_errors') . "n"; //显示错误是否打开
echo 'register_globals = ' . ini_get('register_globals') . "n";//全局变量是否打开
echo 'post_max_size = ' . ini_get('post_max_size') . "n";//最多能提交的文件大小
echo 'post_max_size 1 = ' . (ini_get('post_max_size') 1) . "n";
?>
输出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size 1 = 9
这个函数主要是为了获取配置文件,可以方便你很多操作。比如你想操作字符串过滤,但是又不清楚magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:
/* 字符串过滤函数 */
function stringFilter($str)
{
if (ini_get('magic_quotes_gpc)') {
return $str;
} else {
return addslashes($str);
}
}
当然,假如你无法知道你的全局变量是否打开,也可以定制这样的函数:
/* 变量检测函数 */
function getGetVar($var)
{
if (ini_set('register_gobals')) {
return $var;
} else {
return $_GET['var'];
php读取证书信息
这些都是php自带函数
echo $_SERVER["CERT_FLAGS"]."";//使用证书的标识,1或0
echo $_SERVER["CERT_ISSUER"]."";//颁发机构
echo $_SERV R["CERT_SERIALNUMBER"]."";//序列号
echo $_SERVER["CERT_SUBJECT"]."";//主题
echo $_SERVER["HTTPS"]."";//https开关,on或off
echo $_SERVER["HTTPS_KEYSIZE"]."";//密钥长度,128
echo $_SERVER["HTTPS_SECRETKEYSIZE"]."";//加密强度,1024
echo $_SERVER["HTTPS_SERVER_ISSUER"]."";//服务器证书颁发机构
echo $_SERVER["HTTPS_SERVER_SUBJECT"]."";//服务器证书主题
php处理ubb函数
<?php
/*
程序设计: 林建炫(飘枫设计室)
made in 陆丰 by 2007-03-07 中午
QQ: 5818500
Email: linzhenxuan@163.com
如果你使用、修改请保留该信息!
功能: Ubb类
优点: 比普通ubb多了快速Ubb配对相应的html问题。
*/
Class Cls_Ubb
{
var $type='';
Function _htm($string)
{
if(!$string){return "";}
if(ereg("<(.+)*>(.+)*</(.+)*>",$string))
{
$string = eregi_replace("<","<",$string);
$string = eregi_replace(">",">",$string);
}
if(eregi("[(/*b)]",$string)){$this->type.="1,";}
if(eregi("[(/*i)]",$string)){$this->type.="2,";}
if(eregi("[(/*u)]",$string)){$this->type.="3,";}
if(eregi("[align=([a-zA-Z]*)]",$string)){$this->type.="4,";}
if(eregi("[fly](.+)*[/fly]",$string)){$this->type.="5,";}
if(eregi("[move](.+)*[/move]",$string)){$this->type.="6,";}
if(eregi("[light](.+)*[/light]",$string)){$this->type.="7,";}
if(eregi("[SHADOW=([0-9]{1,3}),([a-zA-Z]*),([0-9]{1,})](.+)*[/shadow]",$string)){$this->type.="8,";}
if(eregi("[url=(.+)](.+)[/url]",$string)){$this->type.="9,";}
if(eregi("[email]([a-zA-Z0-9]{1,}@([a-zA-Z0-9]{1,}.[a-zA-Z0-9]{1,})*)[/email]",$string)){$this->type.="10,";}
if(eregi("[em([0-9]{1,})]",$string)){$this->type.="11,";}
if(eregi("[img](.+)*[/img]",$string)){$this->type.="12,";}
if(eregi("[flash=*([0-9]*),*([0-9]*)](.+)*[/flash]",$string)){$this->type.="13,";}
if(eregi("[mp=*([0-9]{1,3}),([0-9]{1,3})](.+)*[/mp]",$string)){$this->type.="14,";}
if(eregi("[rm=([0-9]{1,3}),([0-9]{1,3})](.+)*[/rm]",$string)){$this->type.="15,";}
if(eregi("[sound](.+)*[/sound]",$string)){$this->type.="16,";}
if(eregi("[code](.+)*[/code]",$string)){$this->type.="17,";}
if(eregi("[sup](.+)*[/sup]",$string)){$this->type.="18,";}
if(eregi("[sub](.+)*[/sub]",$string)){$this->type.="19,";}
if(eregi("[color=(.+)*](.+)*[/color]",$string)){$this->type.="20,";}
if(eregi("[size=([0-9]{1})](.+)*[/size]",$string)){$this->type.="21,";}
if($this->type){$this->type=substr($this->type,0,(strlen($this->type)-1));}
return $string;
}
?>
php 数组的用法
Array ( [0] => Array ( [userid] => 1 [username] => 刘振鹏 [status] => 0 [userpwd] => ) [1] => Array ( [userid] => 2 [username] => 刘鹏飞 [status] => 0 [userpwd] => ) [2] => Array ( [userid] => 3 [username] => 刘朋 [status] => 0 [userpwd] => ) [3] => Array ( [userid] => 4 [username] => admin [status] => 0 [userpwd] => ) [4] => Array ( [userid] => 11 [username] => admin [status] => 0 [userpwd] => ) [5] => Array ( [userid] => 12 [username] => admin [status] => 0 [userpwd] => ) [6] => Array ( [userid] => 13 [username] => liuzp [status] => 0 [userpwd] => ) [7] => Array ( [userid] => 14 [username] => lzp [status] => 0 [userpwd] => ) )
php file_get_contents函数
php file_get_contents函数,
本函数用来读取远程服务器文件的内容,这样大大的方便写采集朋友了,只要很简单的一句就可以把远程服务器的文件保存到自己的数据库,你说简单不,光说不行了我举个例子看看吧.
php htmlspecialchars()函数
由于使用Javascript (通常情况下)客户端的技术,和PHP (通常情况下)服务器端技术,自从HTTP是一种“无国籍”协议,两种语言不能直接共享变量。
然而,人们可能通过变量两者之间的关系。途径之一是完成这一创造Javascript代码用PHP ,并刷新浏览器本身,通过特定变量返回的PHP脚本。下面的例子恰恰说明如何做到这一点-它使P HP代码捕获屏幕的高度和宽度,这通常是唯一可能在客户端。htmlspecialchars()函数
PHP array_diff() 与 array_diff_key()函数
我们先来看看PHP array_diff()的语法吧.
定义和用法
该array_diff ( )函数比较两个或两个以上的阵列,并返回一个数组的项和值从第一阵列,只有当该值不是在任何其他阵列。
array_diff_assoc() 与 array_diff_uassoc()函数教程
array_diff_assoc() 与 array_diff_uassoc()函数教程
定义和用法
该array_diff_assoc ( )函数比较两个或两个以上的阵列,并返回一个数组的项和值从第一阵列,只有当他们不存在任何其他阵列。
php array_intersect_ukey()函数使用方法
好了下面我们来看看phparray_intersect_ukey()函数使用方法与实例教程吧.
array_intersect_ukey()定义和用法
该array_intersect_ukey ( )函数比较的钥匙在两个或两个以上的阵列,检查比赛之前,比较的钥匙在一个用户定义的函数,然后返回一个数组的项和值从第一个数组,如果该功能允许它。
语法
PHP array_merge_recursive 与array_merge() 函数使用方法
PHP array_merge_recursive 数据合并函数与array_merge() 函数使用方法 以及实例教程
array_merge_recursive 定义和用法
该array_merge_recursive ( )函数合并一矿多阵列成一个阵列。之间的差异这一职能蚂蚁的array_merge ( )函数是当两个或更多的数组元素具有相同的关键。而不是凌驾于按键, array_merge_recursivse ( )函数使得价值的一个数组。 (见例1 )
语法