Maison > Article > interface Web > 13 fonctions PHP super pratiques, lesquelles connaissez-vous ?
Cet article va vous présenter 13 fonctions PHP super pratiques. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
1. Cryptage et décryptage PHP
Les fonctions de cryptage et de décryptage PHP peuvent être utilisées pour crypter certaines chaînes utiles et les stocker dans la base de données, et en déchiffrant la chaîne de manière réversible, cette fonction utilise le cryptage et le décryptage base64 et MD5.
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; } }
La méthode d'utilisation est la suivante :
//以下是将字符串“Helloweba欢迎您”分别加密和解密 //加密: echo encryptDecrypt('password', 'jb51欢迎您',0); //解密: echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
2. PHP génère une chaîne aléatoire
Lorsque nous devons générer un. nom aléatoire, temporairement La fonction suivante peut être utilisée lors de la saisie de chaînes telles que des mots de passe :
function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; }
La méthode d'utilisation est la suivante :
echo generateRandomString(20);
3. extension de fichier (suffixe)
La fonction suivante peut obtenir rapidement l'extension ou le suffixe du fichier.
function getExtension($filename){ $myext = substr($filename, strrpos($filename, '.')); return str_replace('.','',$myext); }
La méthode d'utilisation est la suivante :
$filename = '我的文档.doc'; echo getExtension($filename);
4. PHP obtient la taille et les formats du fichier
ci-dessous La fonction utilisée peut obtenir la taille du fichier et le convertir en Ko, Mo et autres formats faciles à lire.
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]); } }
est utilisé comme suit :
$thefile = filesize('test_file.mp3'); echo formatSize($thefile);
5. PHP remplace les caractères de balise
Parfois, nous avons besoin pour remplacer les chaînes et les balises de modèle par le contenu spécifié, vous pouvez utiliser la fonction suivante :
function stringParser($string,$replacer){ $result = str_replace(array_keys($replacer), array_values($replacer),$string); return $result; }
La méthode d'utilisation est la suivante :
$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. Listes PHP le répertoire Le nom du fichier est
Si vous souhaitez lister tous les fichiers du répertoire, utilisez le code suivant :
function listDirFiles($DirPath){ if($dir = opendir($DirPath)){ while(($file = readdir($dir))!== false){ if(!is_dir($DirPath.$file)) { echo "filename: $file<br />"; } } } }
L'utilisation est la suivante :
listDirFiles('home/some_folder/');
7. PHP obtient l'URL de la page actuelle
La fonction suivante peut obtenir l'URL de la page actuelle, qu'elle soit http ou 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; }
La méthode d'utilisation est la suivante :
echo curPageURL();
8. PHP force le téléchargement de fichiers
Parfois. nous ne voulons pas Si le navigateur ouvre directement un fichier, tel qu'un fichier PDF, mais souhaite télécharger le fichier directement, la fonction suivante peut forcer le téléchargement du fichier. Le type d'en-tête application/octet-stream est utilisé dans. la fonction.
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!"; } }
La méthode d'utilisation est la suivante :
download('/down/test_45f73e852.zip');
9. PHP intercepte la longueur de la chaîne
Nous rencontrons souvent une situation où vous devez intercepter la longueur d'une chaîne (y compris les caractères chinois), par exemple, le titre ne peut pas afficher plus de quelques caractères et l'excès de longueur est représenté par..., la fonction suivante peut répondre à vos besoins.
/* Utf-8、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 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; } }
La méthode d'utilisation est la suivante :
$str = "jQuery插件实现的加载图片和页面效果"; echo cutStr($str,16);
10. PHP obtient la véritable adresse IP du client
Nous avons souvent Pour enregistrer l'IP de l'utilisateur dans la base de données, le code suivant permet d'obtenir l'IP réelle du client :
//获取用户真实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); }
L'utilisation est la suivante :
echo getIp();
11, PHP empêche l'injection SQL
Lorsque nous interrogeons la base de données, pour des raisons de sécurité, nous devons filtrer certains caractères illégaux pour empêcher une injection SQL malveillante. regardez la fonction :
function injCheck($sql_str) { $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str); if ($check) { echo '非法字符!!'; exit; } else { return $sql_str; } }
Utiliser La méthode est la suivante :
echo injCheck('1 or 1=1');
12. Invites et sauts de page PHP
Lorsque nous effectuons des opérations sur un formulaire, nous avons parfois besoin d'invites par souci de convivialité. L'utilisateur exploite les résultats et accède à la page correspondante. Veuillez consulter la fonction suivante :
function message($msgTitle,$message,$jumpUrl){ $str = '<!DOCTYPE HTML>'; $str .= '<html>'; $str .= '<head>'; $str .= '<meta charset="utf-8">'; $str .= '<title>页面提示</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>'; $str .= '<h3>'.$msgTitle.'</h3>'; $str .= '<div>'; $str .= '<h4>'.$message.'</h4>'; $str .= '<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>'; $str .= "<script>setTimeout('location.replace(\'".$jumpUrl."\')',2000)</script>"; $str .= '</div>'; $str .= '</div>'; $str .= '</body>'; $str .= '</html>'; echo $str; }
La méthode d'utilisation. est la suivante :
message('操作提示','操作成功!','http://www.php.cn');
13. Temps de calcul PHP
Lorsque nous traitons le temps, nous devons calculer la durée à partir de l'heure actuelle. jusqu'à un certain moment. Par exemple, le calcul du temps d'exécution du client est généralement représenté par hh:mm:ss.
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; }
La méthode d'utilisation est la suivante :
$seconds = 3712; echo changeTimeType($seconds);
Apprentissage recommandé : "Tutoriel vidéo PHP"