php开发中常用的技巧分享
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 = '192.168.0.84'; $mask = '255.255.255.0'; $network = '192.168.0'; $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 'xxx';
?>PHP用header输出ftp下载方式,并且支持断点续传,一个例子:
<?php
header('Pragma: public');
header('Cache-Control: private');
header('Cache-Control: no-cache, must-revalidate');
header('Accept-Ranges: bytes');
header('Connection: close');
header("Content-Type: audio/mpeg");
header("Location:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web技术开发知识库/cn_web.rmvb");
?>文章网址:http://www.phprm.com/develop/fs4109.html
随意转载^^但请附上教程地址。