本文为大家分享了多个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技巧送给大家,希望大家喜欢。