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

php开发中常用的技巧分享

WBOY
WBOY原創
2016-05-25 16:43:15964瀏覽

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");
?>


文章网址:

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn