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

php开发中常用的技巧分享

WBOY
Release: 2016-05-25 16:43:15
Original
990 people have browsed it

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

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

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;
}
?>
Copy after login

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

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

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;
}
?>
Copy after login

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 ";
    
}
?>
Copy after login

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;
}
?>
Copy after login

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);
}
?>
Copy after login

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); //恢复缺省超时设置
        
    }
}
?>
Copy after login

以下是一些小技巧.

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";
?>
Copy after login

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;;
?>
Copy after login

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


文章网址:

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template