Maison  >  Article  >  interface Web  >  13 fonctions PHP super pratiques, lesquelles connaissez-vous ?

13 fonctions PHP super pratiques, lesquelles connaissez-vous ?

PHPz
PHPzavant
2016-05-16 15:35:502400parcourir

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; 
  } 
}

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, &#39;.&#39;)); 
 return str_replace(&#39;.&#39;,&#39;&#39;,$myext); 
}

La méthode d'utilisation est la suivante :

$filename = &#39;我的文档.doc&#39;; 
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(&#39;n/a&#39;); 
  } else { 
   return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); 
  } 
}

est utilisé comme suit :

$thefile = filesize(&#39;test_file.mp3&#39;); 
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 = &#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);

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(&#39;home/some_folder/&#39;);

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; 
}

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(&#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!"; 
  } 
}

La méthode d'utilisation est la suivante :

 download(&#39;/down/test_45f73e852.zip&#39;);

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; 
  } 
}

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[&#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); 
}

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

Utiliser La méthode est la suivante :

echo injCheck(&#39;1 or 1=1&#39;);

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; 
}

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

message(&#39;操作提示&#39;,&#39;操作成功!&#39;,&#39;http://www.php.cn&#39;);

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; 
}

La méthode d'utilisation est la suivante :

$seconds = 3712; 
echo changeTimeType($seconds);

Apprentissage recommandé : "Tutoriel vidéo PHP"

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer