1, PHP encryption and decryption
2, PHP generates a random string
3, PHP to get the file extension (suffix)
4, PHP get the file size and format
5, PHP replace the label characters
6, PHP directory lists the file name
7, PHP to get the current page URL
8, PHP forced to download the file
9, PHP interception string length
10, PHP obtain client's IP
11, PHP prevent SQL injection
12, PHP page Tips & Jump
13, Calculating PHP running time
1, PHP encryption and decryption
PHP encryption and decryption functions can be used to encrypt some useful string is stored in the database, and by reversible decrypt strings, the function uses the base64 and MD5 encryption and decryption.
function encryptDecrypt($key, $string, $decrypt){
if($decrypt){
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");
return $decrypted;
}else{
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
return $encrypted;
}
}
Use as follows:
//The following is the string "Welcomes to goocode.net", respectively, the encryption and decryption
//Encryption:
echo encryptDecrypt('password', 'Helloweba欢迎您',0);
//Decryption:
echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXu',1);
2, PHP generates a random string
When we need to generate a random name and a temporary password and other strings can be used the following function:
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
Use as follows:
echo generateRandomString(20);
3, PHP to get the file extension (suffix)
The following functions can quickly get the file extension that suffix.
function getExtension($filename){
$myext = substr($filename, strrpos($filename, '.'));
return str_replace('.','',$myext);
}
Use as follows:
$filename = 'mydocuments.doc';
echo getExtension($filename);
4, PHP get the file size and format
The following functions can be used to obtain the file size, and converted into readable KB, MB and other formats.
function formatSize($size) {
$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
if ($size == 0) {
return('n/a');
} else {
return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);
}
}
Use as follows:
$thefile = filesize('sky.mp3');
echo formatSize($thefile);
5, PHP replace the label characters
Sometimes we need to be string, replace the specified template tag content, you can use the following function:
function stringParser($string,$replacer){
$result = str_replace(array_keys($replacer), array_values($replacer),$string);
return $result;
}
Use as follows:
$string = 'The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself';
$replace_array = array('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br />');
echo stringParser($string,$replace_array);
6, PHP directory lists the file name
If you want to list all the files in a directory, use the following code:
function listDirFiles($DirPath){
if($dir = opendir($DirPath)){
while(($file = readdir($dir))!== false){
if(!is_dir($DirPath.$file))
{
echo "filename: $file<br />";
}
}
}
}
Use as follows:
listDirFiles('home/some_folder/');
7, PHP to get the current page URL
The following functions can obtain the URL of the current page, whether it is http or https.
function curPageURL() {
$pageURL = 'http';
if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
Use as follows:
echo curPageURL();
8, PHP forced to download the file
Sometimes we do not want the browser to directly open files, such as PDF files, but to directly download the file, then the following functions can be forced to download the file, the function uses the application / octet-stream header type.
function download($filename){
if ((isset($filename))&&(file_exists($filename))){
header("Content-length: ".filesize($filename));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile("$filename");
} else {
echo "Looks like file does not exist!";
}
}
Use as follows:
download('/down/asb123.zip');
9, PHP interception string length
We often encounter the need to intercept the string (including Chinese characters) case length, such as the title can not exceed the number of characters displayed beyond the length with ... said that the following functions to meet your needs.
/*
Utf-8, gb2312 character interception function supported
cut_str (string interception length, began length coding);
The default is utf-8 encoding
Start length defaults to 0
*/
function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){
if($code == 'UTF-8'){
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}else{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i<$strlen; $i++){
if($i>=$start && $i<($start+$sublen)){
if(ord(substr($string, $i, 1))>129){
$tmpstr.= substr($string, $i, 2);
}else{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
return $tmpstr;
}
}
Use as follows:
$str = "jQuery to realize page effects";
echo cutStr($str,16);
10, PHP obtain client's IP
We often use the database to record the user's IP, the following code to get the client's IP:
//get users' real IP
function getIp() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
Use as follows:
echo getIp();
11, PHP prevent SQL injection
We query the database, for security reasons, to prevent the need to filter some illegal characters malicious SQL injection, take a look at the function:
function injCheck($sql_str) {
$check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);
if ($check) {
echo 'hack error!!';
exit;
} else {
return $sql_str;
}
}
Use as follows:
echo injCheck('1 or 1=1');
12, PHP page Tips & Jump
We form during the operation, and sometimes need to prompt the user-friendly operating results and jump to the relevant page, consider the following function:
function message($msgTitle,$message,$jumpUrl){
$str = '<!DOCTYPE HTML>';
$str .= '<html>';
$str .= '<head>';
$str .= '<meta charset="utf-8">';
$str .= '<title>Tips</title>';
$str .= '<style type="text/css">';
$str .= '*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial, sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}';
$str .= '</style>';
$str .= '</head>';
$str .= '<body>';
$str .= '<div class="message">';
$str .= '<h3>'.$msgTitle.'</h3>';
$str .= '<div class="msg_txt">';
$str .= '<h4 class="red">'.$message.'</h4>';
$str .= '<p>The page will be redirected in <span style="color:blue;font-weight:bold">3</span> s. You can also click <a href="{$jumpUrl}">HERE</a> to redirect immediately.</p>';
$str .= "<script>setTimeout('location.replace(\'".$jumpUrl."\')',2000)</script>";
$str .= '</div>';
$str .= '</div>';
$str .= '</body>';
$str .= '</html>';
echo $str;
}
Use as follows:
message('Prompt','Success!','http://www.goocode.net/');
13, Calculating PHP running time
Processing time when we need to calculate the distance between the current time point in time duration, such as computing client runtime long, usually with hh: mm: ss, said.
function changeTimeType($seconds) {
if ($seconds > 3600) {
$hours = intval($seconds / 3600);
$minutes = $seconds % 3600;
$time = $hours . ":" . gmstrftime('%M:%S', $minutes);
} else {
$time = gmstrftime('%H:%M:%S', $seconds);
}
return $time;
}
Use as follows:
$seconds = 3712;
echo changeTimeType($seconds);