Summary of common PHP tips (with function code)
- 2020-05-12 02:22:56
- OfStack
PHP file read function
// File read function
function PHP_Read($file_name) {
$fd=fopen($file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.=$bufline;
}
fclose($fd);
return $buf;
}
?>
File write function
// File write function
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;
}
?>
Static page generation function
// Static page generation function
function phptohtm($filefrom,$fileto,$u2u=1){
if($u2u==1){
$data=PHP_Read($filefrom);
}else{
$data=$filefrom;
}
PHP_Write($fileto,$data);
return true;
}
?>
Specifies the number of conditional information retrieval functions
// Specifies the number of conditional information retrieval functions
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;
}
?>
Directory delete function
// Directory delete function
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 " ;
}
?>
Directory name legitimacy detection function
// Directory name validity check
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( "Not up to par ! " );
}
$ret.=chr($p);
}
return $ret;
}
?>
The PHP paging function
// The paging function
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( "No news has been chosen within this edition ! " );
}
$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 instructions for using paging functions
/*
#### Retrieves the paging function ####
Int $HALT � Retrieval results are scored only 1 When the page is (1/0) Display the page number bar
Int $LRLIST � ( The page number bar shows the number of pages -1)/2
Int $ECHOCNT � The number of records displayed per page when retrieving
Int $paper � Pages, preextraction: $paper=$HTTP_GET_VARS[paper];
Varchar $table � The data table name , Early attached value: $table= " db.table " ;
Varchar $where � Retrieve conditions, pre-attached values: $where= " where field='value' " ;
Varchar $enwhere � The original $where For the first of two base64_encode() After coding in order to GET Method of submission
Varchar $splitstr � The page bar outputs a string, which is executed in the corresponding position after the function is executed echo $splitstr;
Get variables before function calls -
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];
Return (Varchar $where) � Retrieve the condition of the paged post-retrieve statement
Note: this function calls the error handling function nerror($error);
*/
PHP Picture file upload function
// Picture file upload function
function upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64){
//$TimeLimit=60; // Set a timeout limit The default time is 30 seconds Set to 0 Time is unlimited
//set_time_limit($TimeLimit);
if(($UploadFile!= " none " )&&($UploadFile != "" )){
$FileName=$UploadPath.$UploadFile_name;
if($UploadFile_size <1024){
$FileSize= " (string)$UploadFile_size " . "Byte" ;
}elseif($UploadFile_size <(1024 * $max_size)){
$FileSize=number_format((double)($UploadFile_size / 1024), 1) . " KB " ;
}else{
nerror( "The file exceeds the size limit ! " );
}
//{
//$FileSize= " number_format((double)($UploadFile_size " / (1024 * 1024)), 1) . " MB " ;
// }
if(!file_exists($FileName)){
if(copy($UploadFile,$FileName)){
return " $UploadFile_name ($FileSize) " ;
}else{
nerror( "File $UploadFile_name Upload failed ! " );
}
unlink($UploadFile);
}else{
nerror( "File $UploadFile_name existing ! " );
}
//set_time_limit(30); // Restore the default timeout setting
}
}
Here are a few tips:
How does PHP determine the validity of ip addresses
if (! strcmp (long2ip (sprintf (" % u ip2long ($ip))), $ip)) echo "is ipn";
-- -
Regular judgment of email
eregi (" ^ _. 0-9 a zA - Z -] + @ ([0-9 a zA - Z] [0-9 a zA - Z_ -] +.) + [a zA - Z] $", $email);
Check if the ip address and mask are legal
$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";
? >
-- -
How to set the output of PHP file download header
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 USES header to output ftp downloads and supports breakpoint continuation
One example:
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: 1 bk3l4s3k9s2@232.2.22.22/2222 / web technology to develop the knowledge base/cn_web rmvb ");
PHP regular matching Chinese
ereg (" ^ ". chr (0 xa1). "-". chr (0 xff). "] + $", $str);
Batch replacement text inside the hyperlink
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;
}