首页 > php函数

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的几个配置文件函数

以前一直没注重,今天听同事讲起,马上看看,功能强大。
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'];

阅读全文

禁止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;
}


?>

阅读全文

判断中文的函数

<?

$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);

?>

阅读全文

PHP自带函数大全

Abs: 取得绝对值。
Acos: 取得反余弦值。
ada_afetch: 取得资料库的传回列。
ada_autocommit: 开关自动更动功能。
ada_close: 关闭 Adabas D 连结。
ada_commit: 更动 Adabas D 资料库。
ada_connect: 连结至 Adabas D 资料库。
ada_exec: 执行 SQL 指令。
ada_fetchrow: 取得传回一列。
ada_fieldname: 取得栏位名称。
ada_fieldtype: 取得栏位资料形态。
ada_freeresult: 释出传回资料的记忆体。
ada_numfields: 取得栏位数目。
ada_numrows: 取得传回列数目。
ada_result: 取得传回资料。
ada_resultall: 传回 HTML 表格资料。
ada_rollback: 撤消当前交易。
AddSlashes: 字串加入斜线。
apache_lookup_uri: 获得所有的 URI 相关资讯。
apache_note: 获得及设定阿帕契伺服器的请求纪录。
array: 建立一个新的阵列。
array_walk: 让使用者自订函数能处理阵列中的每一个元素。
arsort: 将阵列的值由大到小排序。
Asin: 取得反正弦值。
asort: 将阵列的值由小到大排序。
aspell_check: 检查一个单字。
aspell_check-raw: 检查一个单字,即使拼错也不改变或修正。
aspell_new: 载入一个新的字典。
aspell_suggest: 检查一个单字,并提供拼字建议。
Atan: 取得反正切值。
Atan2: 计算二数的反正切值。
base64_decode: 将 BASE64 编码字串解码。
base64_encode: 将字串以 BASE64 编码。
basename: 传回不含路径的档案字串。
base_convert: 转换数字的进位方式。
bcadd: 将二个高精确度数字相加。
bccomp: 比较二个高精确度数字。
bcdiv: 将二个高精确度数字相除。
bcmod: 取得高精确度数字的余数。
bcmul: 将二个高精确度数字相乘。
bcpow: 求一高精确度数字次方值。
bcscale: 设定程式中所有 BC 函式库的内定小数点位数。
bcsqrt: 求一高精确度数字的平方根。
bcsub: 将二个高精确度数字相减。
bin2hex: 二进位转成十六进位。
BinDec: 二进位转成十进位。
Ceil: 计算大于指定数的最小整数。
chdir: 改变目录。
checkdate: 验证日期的正确性。
checkdnsrr: 检查指定网址的 DNS 记录。
chgrp: 改变档案所属的群组。
chmod: 改变档案的属性。
Chop: 去除连续空白。
chown: 改变档案的拥有者。
Chr: 传回序数值的字元。
chunk_split: 将字串分成小段。
clearstatcache: 清除档案状态快取。
closedir: 关闭目录 handle。
closelog: 关闭系统纪录。
connection_aborted: 若连结中断则传回 true。
connection_status: 取得连线状态。
connection_timeout: 若超过 PHP 程式执行时间则传回 true。
convert_cyr_string: 转换古斯拉夫字串成其它字串。
copy: 复制档案。
Cos: 余弦计算。
count: 计算变数或阵列中的元素个数。
crypt: 将字串用 DES 编码加密。
current: 传回阵列中目前的元素。
date: 将伺服器的时间格式化。
dbase_add_record: 加入资料到 dBase 资料表。
dbase_close: 关闭 dBase 资料表。
dbase_create: 建立 dBase 资料表。
dbase_delete_record: 删除 dBase 资料表的资料。
dbase_get_record: 取得 dBase 资料表的资料。
dbase_numfields: 取得 dBase 资料表的栏位数。
dbase_numrecords: 取得 dBase 资料表的列数。
dbase_open: 开启 dBase 资料表。
dbase_pack: 清理 dBase 资料表。
dba_close: 关闭资料库。
dba_delete: 删除指定资料。
dba_exists: 检查键是否存在。
dba_fetch: 取回指定资料。
dba_firstkey: 取回首笔键值。
dba_insert: 加入资料。
dba_nextkey: 取回下笔键值。
dba_open: 开启资料库连结。
dba_optimize: 最佳化资料库。
dba_popen: 开启并保持资料库连结。
dba_replace: 更动或加入资料。
dba_sync: 资料库同步化。
dblist: 取得 DBM 的资讯。
dbmclose: 关闭 DBM 资料库。
dbmdelete: 删除指定资料。
dbmexists: 检查键是否存在。
dbmfetch: 取回指定资料。
dbmfirstkey: 取回首笔键名。
dbminsert: 加入资料。
dbmnextkey: 取回下笔键值。
dbmopen: 开启 DBM 资料库连结。
dbmreplace: 更动或加入资料。
debugger_off: 关闭内建的 PHP 除错器。
debugger_on: 使用内建的 PHP 除错器。
DecBin: 十进位转二进位。
DecHex: 十进位转十六进位。
DecOct: 十进位转八进位。
delete: 无用的项目。
die: 输出讯息并中断 PHP 程式。
dir: 目录类别物件。
dirname: 取得路径中的目录名。
diskfreespace: 取得目录所在的剩余可用空间。
dl: 载入 PHP 扩充模组。
doubleval: 变数转成倍浮点数型态。
each: 传回阵列中下一个元素的索引及值。
easter_date: 计算复活节日期。
easter_days: 计算复活节与三月廿一日之间日期数。
echo: 输出字串。
empty: 判定变数是否已设定。
end: 将阵列的内部指标指到最后的元素。
ereg: 字串比对剖析。
eregi: 字串比对剖析,与大小写无关。
eregi_replace: 字串比对剖析并取代,与大小写无关。
ereg_replace: 字串比对剖析并取代。
error_log: 送出一个错误讯息。
error_reporting: 设定错误讯息回报的等级。
escapeshellcmd: 除去字串中的非凡符号。
eval: 将值代入字串之中。
exec: 执行外部程式。
exit: 结束 PHP 程式。
Exp: 自然对数 e 的次方值。
explode: 切开字串。
extract: 汇入阵列到符号表。
fclose: 关闭已开启的档案。
FDF_close: 关闭 FDF 文件。
FDF_create: 建立新的 FDF 文件。
FDF_get_file: 取得 /F 键的值。
FDF_get_status: 取得 /STATUS 键的值。

阅读全文

常用php函数

文件读取函式
   //文件读取函式
   function PHP_Read($file_name) {
   $fd=fopen($file_name,r);
   while($bufline=fgets($fd, 4096)){
   $buf.=$bufline;
    }
   fclose($fd);
   return $buf;
    }
   ?>

文件写入函式

    //文件写入函式
   function PHP_Write($file_name,$data,$method="w") {
   $filenum=@fopen($file_name,$method);
   flock($filenum,LOCK_EX);
   $file_data=fwrite($filenum,$data);
   fclose($filenum);
   return $file_data;
    }
   ?>

静态页面生成函式
   //静态页面生成函式
   function phptohtm($filefrom,$fileto,$u2u=1){
   if($u2u==1){
   $data=PHP_Read($filefrom);
    }else{
   $data=$filefrom;
    }
   PHP_Write($fileto,$data);
   return true;
    }
   ?>

指定条件信息数量检索函式

    //指定条件信息数量检索函式
   function rec_exist($table,$where){
   $query="select count(*) as num from $table ".$where;
   $result=mysql_query($query) or die(nerror(1));
   $rowcount=mysql_fetch_array($result);
   $num=$rowcount["num"];
   if ($num==0){
   return false;
    }
   return $num;
    }
   ?>
目录删除函式
   //目录删除函式
   function del_DIR($directory){
   $mydir=dir($directory);
   while($file=$mydir->read()){
   if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")){
   del_DIR("$directory/$file");
    }else{
   if(($file!=".") AND ($file!="..")){
   unlink("$directory/$file");
   //echo "unlink $directory/$file ok
";
    }
    }
    }
   $mydir->close();
   rmdir($directory);
   //echo "rmdir $directory ok
";
    }
   ?>

目录名称合法性检测函式

   //目录名称合法性检测
   function isen($str){
   $ret="";
   for($i=0;$i   $p=ord(substr($str,$i,1));
   if(($p<48 & $p!=45 & $p!=46) || ($p>57 & $p<65) || ($p>90 & $p<97 & $p!=95) || $p>122){
   nerror("不符合规范!");
    }
   $ret.=chr($p);
    }
   return $ret;
    }
   ?>
分页函式

   //分页函式
   function splitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
   global $splitstr,$sumcnt;
   if($paper=="" || $sumcnt==""){
   $query = "select count(*) as num from $table $where";
   $result = mysql_query($query);
   $row = mysql_fetch_array($result);
   $sumcnt=$row["num"];
   if($sumcnt==0){
   nerror("该版内还没有选择发布新闻 !");
    }
   $paper=1;
    }
   $sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT;
   if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1;
   if($sumpaper==1 && $HALT==0) return($where);
   $enwhere=base64_encode(base64_encode($where));
   if(($LRLIST*2+1) < $sumpaper){
   if(($paper-$LRLIST) < 2){
   $tract=1;
   $sub=$LRLIST*2+1;
    }else if(($paper+$LRLIST) >= $sumpaper){
   $tract=$sumpaper-($LRLIST*2);
   $sub=$sumpaper;
    }else{
   $tract=$paper-$LRLIST;
   $sub=$paper+$LRLIST;
    }
    }else{
   $tract=1;
   $sub=$sumpaper;
    }
   $uppaper=$paper-1;
   $downpaper=$paper+1;
   $startcnt=($paper-1)*$ECHOCNT;
   $where.=" limit ${ startcnt },${ ECHOCNT }";
   if($tract > 1) { $splitstr="【 << "; }
   else $splitstr="【 << ";
   for($i=$tract;$i<=$sub;$i++){
   if ($i!=$paper) $splitstr.="".$i." ";
   else $splitstr.="".$i." ";
    }
   if ($sub!=$sumpaper) $splitstr.=">> 】";
   else $splitstr.=">> 】";
   return($where);
    }
   ?>

关于分页函式的使用说明  


      /*
   #### 检索分页函式 ####
   Int $HALT - 检索结果仅分1页时是否(1/0)显示页码条
   Int $LRLIST - (页码条显示页码数-1)/2
   Int $ECHOCNT - 检索时每页显示记录的数量
   Int $paper - 页数,预提取:$paper=$HTTP_GET_VARS[paper];
   Varchar $table - 数据表名,预附值:$table="db.table";
   Varchar $where - 检索条件,预附值:$where="where field='value'";
   
   Varchar $enwhere - 将原$where进行两次base64_encode()编码后以GET的方式提交
   Varchar $splitstr - 页码条输出字串,执行函式后在相应的位置执行 echo $splitstr;
   
   函式调用前需获取变量 -
   $paper=$HTTP_GET_VARS[paper];
   $sumcnt=$HTTP_GET_VARS[sumcnt];
   $enwhere=$HTTP_GET_VARS[enwhere];
   
   Return (Varchar $where) - 分页后检索语句的检索条件
   注意:本函式需调用出错处理函式 nerror($error);
   */
   ?>



图片文件上传函式

   //图片文件上传函式
   function upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64){
   
   //$TimeLimit=60; //设置超时限制时间 缺省时间为 30秒 设置为0时为不限时
   //set_time_limit($TimeLimit);
   if(($UploadFile!= "none" )&&($UploadFile != "" )){
   $FileName=$UploadPath.$UploadFile_name;
   if($UploadFile_size <1024){
   $FileSize="(string)$UploadFile_size" . "字节";
    }elseif($UploadFile_size <(1024 * $max_size)){
   $FileSize=number_format((double)($UploadFile_size / 1024), 1) . " KB";
    }else{
   nerror("文件超过限制大小!");
    }
   //{
   //$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB";
   // }
   if(!file_exists($FileName)){
   if(copy($UploadFile,$FileName)){
   return "$UploadFile_name ($FileSize)";
    }else{
   nerror("文件 $UploadFile_name 上载失败!");
    }
   unlink($UploadFile);
    }else{
   nerror("文件 $UploadFile_name 已经存在!");
    }
   //set_time_limit(30); //恢复缺省超时设置
    }
    }
   ?>

阅读全文

用PHP来制作评论系统

我们在实际做的过程中很是简单的,希望大家好好研究一下,给补充多点功能。本程序须在PHP and mySQL的环境下运行。有三个文件:comments.php, 是用来显示[评论的, commentadd.php, 用来处理评论内容的, and commentform.html 通过FROM来提交评论。

阅读全文