本文为大家分享了多个php常用技巧,供大家参考,具体内容如下
1、PHP文件读取函式
1
2
3
4
5
6
7
8
9
10
|
//文件读取函式
function PHP_Read( $file_name ) {
$fd = fopen ( $file_name ,r);
while ( $bufline = fgets ( $fd , 4096)){
$buf .= $bufline ;
}
fclose( $fd );
return $buf ;
}
?>
|
2、文件写入函式
1
2
3
4
5
6
7
8
9
|
//文件写入函式
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 ;
}
?>
|
3、静态页面生成函式
1
2
3
4
5
6
7
8
9
10
11
|
//静态页面生成函式
function phptohtm( $filefrom , $fileto , $u2u =1){
if ( $u2u ==1){
$data =PHP_Read( $filefrom );
} else {
$data = $filefrom ;
}
PHP_Write( $fileto , $data );
return true;
}
?>
|
4、指定条件信息数量检索函式
1
2
3
4
5
6
7
8
9
10
11
12
|
//指定条件信息数量检索函式
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 ;
}
?>
|
5、目录删除函式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//目录删除函式
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 “;
}
?>
|
6、目录名称合法性检测函式
1
2
3
4
5
6
7
8
9
10
11
12
|
//目录名称合法性检测
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 ;
}
?>
|
7、PHP分页函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
//分页函数
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关于分页函式的使用说明
8、PHP图片文件上传函式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
//图片文件上传函式
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); //恢复缺省超时设置
}
}
|
以下是一些小技巧:
1、 PHP如何判断ip地址合法性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
if (! strcmp (long2ip(sprintf(“%u”, ip2long ( $ip ))), $ip )) echo “is ipn”;
—-
email的正则判断
eregi (“^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$”, $email );
检测ip地址和mask是否合法的例子
$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 maskn”;
?>
—-
|
2、PHP文件下载头部输出如何设定
1
2
3
4
5
|
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'
|
3、PHP用header输出ftp下载方式,并且支持断点续传
一个例子:
1
2
3
4
5
6
7
|
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”);
|
4、PHP正则匹配中文
1
|
ereg (“^[ ".chr(0xa1)." - ".chr(0xff)." ]+$”, $str );
|
5、批量替换文本里面的超级链接
1
2
3
4
5
6
7
8
9
10
11
12
|
function urlParse( $str = ”){
if (” == $str ) return $str ;
$types = array (“http”, “ftp”, “https”);
$replace = <<
”.htmlentities( '1′).htmlentities(' 2′).”
EOPHP;
$ret = $str ;
while (list(, $type ) = each( $types )){
$ret = preg_replace(“|( $type : //)([^s]*)|ie “, $replace, $ret);
}
return $ret ;
}
|
以上就是本文的全部内容,很常用的php技巧送给大家,希望大家喜欢。