Maison > interface Web > js tutoriel > le corps du texte

13 fonctions PHP super pratiques, lesquelles connaissez-vous ?

PHPz
Libérer: 2021-05-31 11:43:47
avant
2368 Les gens l'ont consulté

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.

13 fonctions PHP super pratiques, lesquelles connaissez-vous ?

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; 
  } 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

//以下是将字符串“Helloweba欢迎您”分别加密和解密 
 //加密: 
 echo encryptDecrypt('password', 'jb51欢迎您',0); 
 //解密: 
 echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
Copier après la connexion

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; 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

echo generateRandomString(20);
Copier après la connexion

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, &#39;.&#39;)); 
 return str_replace(&#39;.&#39;,&#39;&#39;,$myext); 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

$filename = &#39;我的文档.doc&#39;; 
echo getExtension($filename);
Copier après la connexion

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(&#39;n/a&#39;); 
  } else { 
   return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); 
  } 
}
Copier après la connexion

est utilisé comme suit :

$thefile = filesize(&#39;test_file.mp3&#39;); 
echo formatSize($thefile);
Copier après la connexion

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; 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

$string = &#39;The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself&#39;; 
$replace_array = array(&#39;{b}&#39; => &#39;<b>&#39;,&#39;{/b}&#39; => &#39;</b>&#39;,&#39;{br}&#39; => &#39;<br />&#39;); 
echo stringParser($string,$replace_array);
Copier après la connexion

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 />"; 
        } 
     } 
  } 
}
Copier après la connexion

L'utilisation est la suivante :

 listDirFiles(&#39;home/some_folder/&#39;);
Copier après la connexion

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 = &#39;http&#39;; 
  if (!empty($_SERVER[&#39;HTTPS&#39;])) {$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; 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

 echo curPageURL();
Copier après la connexion

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(&#39;Content-Type: application/octet-stream&#39;); 
    header(&#39;Content-Disposition: attachment; filename="&#39; . $filename . &#39;"&#39;); 
    readfile("$filename"); 
  } else { 
    echo "Looks like file does not exist!"; 
  } 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

 download(&#39;/down/test_45f73e852.zip&#39;);
Copier après la connexion

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 = &#39;UTF-8&#39;){ 
  if($code == &#39;UTF-8&#39;){ 
    $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(&#39;&#39;, array_slice($t_string[0], $start, $sublen))."..."; 
    return join(&#39;&#39;, array_slice($t_string[0], $start, $sublen)); 
  }else{ 
    $start = $start*2; 
    $sublen = $sublen*2; 
    $strlen = strlen($string); 
    $tmpstr = &#39;&#39;; 

    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; 
  } 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

$str = "jQuery插件实现的加载图片和页面效果"; 
echo cutStr($str,16);
Copier après la connexion

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[&#39;REMOTE_ADDR&#39;]) && $_SERVER[&#39;REMOTE_ADDR&#39;] && strcasecmp($_SERVER[&#39;REMOTE_ADDR&#39;], "unknown")) 
          $ip = $_SERVER[&#39;REMOTE_ADDR&#39;]; 
        else 
          $ip = "unknown"; 
  return ($ip); 
}
Copier après la connexion

L'utilisation est la suivante :

 echo getIp();
Copier après la connexion

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(&#39;/select|insert|update|delete|\&#39;|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/&#39;, $sql_str); 
  if ($check) { 
    echo &#39;非法字符!!&#39;; 
    exit; 
  } else { 
    return $sql_str; 
  } 
}
Copier après la connexion

Utiliser La méthode est la suivante :

echo injCheck(&#39;1 or 1=1&#39;);
Copier après la connexion

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 = &#39;<!DOCTYPE HTML>&#39;; 
  $str .= &#39;<html>&#39;; 
  $str .= &#39;<head>&#39;; 
  $str .= &#39;<meta charset="utf-8">&#39;; 
  $str .= &#39;<title>页面提示</title>&#39;; 
  $str .= &#39;<style type="text/css">&#39;; 
  $str .= &#39;*{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}&#39;; 
  $str .= &#39;</style>&#39;; 
  $str .= &#39;</head>&#39;; 
  $str .= &#39;<body>&#39;; 
  $str .= &#39;<div>&#39;; 
  $str .= &#39;<h3>&#39;.$msgTitle.&#39;</h3>&#39;; 
  $str .= &#39;<div>&#39;; 
  $str .= &#39;<h4>&#39;.$message.&#39;</h4>&#39;; 
  $str .= &#39;<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>&#39;; 
  $str .= "<script>setTimeout(&#39;location.replace(\&#39;".$jumpUrl."\&#39;)&#39;,2000)</script>"; 
  $str .= &#39;</div>&#39;; 
  $str .= &#39;</div>&#39;; 
  $str .= &#39;</body>&#39;; 
  $str .= &#39;</html>&#39;; 
  echo $str; 
}
Copier après la connexion

La méthode d'utilisation. est la suivante :

message(&#39;操作提示&#39;,&#39;操作成功!&#39;,&#39;http://www.php.cn&#39;);
Copier après la connexion

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(&#39;%M:%S&#39;, $minutes); 
  } else { 
    $time = gmstrftime(&#39;%H:%M:%S&#39;, $seconds); 
  } 
  return $time; 
}
Copier après la connexion

La méthode d'utilisation est la suivante :

$seconds = 3712; 
echo changeTimeType($seconds);
Copier après la connexion

Apprentissage recommandé : "Tutoriel vidéo PHP"

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!