Heim >php教程 >php手册 >php开发中常用的技巧分享

php开发中常用的技巧分享

WBOY
WBOYOriginal
2016-05-25 16:43:15966Durchsuche

PHP文件读取函式,代码如下:

<?php
function PHP_Read($file_name) {
    $fd = fopen($file_name, r);
    while ($bufline = fgets($fd, 4096)) {
        $buf.= $bufline;
    }
    fclose($fd);
    return $buf;
}
?>

PHP文件写入函式,代码如下:

<?php
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;
}
?>

PHP静态页面生成函式,代码如下:

<?php
function phptohtm($filefrom, $fileto, $u2u = 1) {
    if ($u2u == 1) {
        $data = PHP_Read($filefrom);
    } else {
        $data = $filefrom;
    }
    PHP_Write($fileto, $data);
    return true;
}
?>

PHP指定条件信息数量检索函式,代码如下:

<?php
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;
}
?>

PHP目录删除函式,代码如下:

<?php
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 ";
    
}
?>

PHP目录名称合法性检测函式,代码如下:

<?php
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;
}
?>

PHP分页函数,代码如下:

<?php
//分页函数
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);
}
?>

PHP图片文件上传函式,代码如下:

<?php
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如何判断ip地址合法性,代码如下:

if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ip\n";

email的正则判断,代码如下:

eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$", $email);

检测ip地址和mask是否合法的例子,代码如下:

<?php
$ip = &#39;192.168.0.84&#39;;
$mask = &#39;255.255.255.0&#39;;
$network = &#39;192.168.0&#39;;
$ip = ip2long($ip);
$mask = ip2long($mask);
$network = ip2long($network);
if (($ip & $mask) == $network) echo "valid ip and mask\n";
?>

PHP文件下载头部输出如何设定,代码如下:

<?php
header("Content-type: application/x-download");
header("Content-Disposition: attachment; filename=$file_download_name;");
header("Accept-Ranges: bytes");
header("Content-Length: $download_size");
echo &#39;xxx&#39;;
?>

PHP用header输出ftp下载方式,并且支持断点续传,一个例子:

<?php
header(&#39;Pragma: public&#39;);
header(&#39;Cache-Control: private&#39;);
header(&#39;Cache-Control: no-cache, must-revalidate&#39;);
header(&#39;Accept-Ranges: bytes&#39;);
header(&#39;Connection: close&#39;);
header("Content-Type: audio/mpeg");
header("Location:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web技术开发知识库/cn_web.rmvb");
?>


文章网址:

随意转载^^但请附上教程地址。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn