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

php开发中常用的技巧分享

WBOY
Freigeben: 2016-05-25 16:43:15
Original
990 Leute haben es durchsucht

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

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

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;
}
?>
Nach dem Login kopieren

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

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

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;
}
?>
Nach dem Login kopieren

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 ";
    
}
?>
Nach dem Login kopieren

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;
}
?>
Nach dem Login kopieren

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);
}
?>
Nach dem Login kopieren

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); //恢复缺省超时设置
        
    }
}
?>
Nach dem Login kopieren

以下是一些小技巧.

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";
?>
Nach dem Login kopieren

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;;
?>
Nach dem Login kopieren

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");
?>
Nach dem Login kopieren


文章网址:

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage