13 fungsi PHP yang sangat praktikal, yang manakah anda tahu?

PHPz
Lepaskan: 2021-05-31 11:43:47
ke hadapan
2368 orang telah melayarinya

Artikel ini akan memperkenalkan anda kepada 13 fungsi PHP yang sangat praktikal. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.

13 fungsi PHP yang sangat praktikal, yang manakah anda tahu?

1. Penyulitan dan penyahsulitan PHP

Fungsi penyulitan dan penyahsulitan PHP boleh digunakan untuk menyulitkan beberapa rentetan yang berguna dan menyimpannya dalam pangkalan data , dan dengan menyahsulit rentetan secara terbalik, fungsi ini menggunakan penyulitan dan penyahsulitan base64 dan 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; 
  } 
}
Salin selepas log masuk

Kaedah penggunaannya adalah seperti berikut:

//以下是将字符串“Helloweba欢迎您”分别加密和解密 
 //加密: 
 echo encryptDecrypt('password', 'jb51欢迎您',0); 
 //解密: 
 echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
Salin selepas log masuk

2 PHP menjana rentetan rawak

Apabila kita perlu menjana a. nama rawak, sementara Fungsi berikut boleh digunakan apabila memasukkan rentetan seperti kata laluan:

function generateRandomString($length = 10) { 
  $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
  $randomString = ''; 
  for ($i = 0; $i < $length; $i++) { 
    $randomString .= $characters[rand(0, strlen($characters) - 1)]; 
  } 
  return $randomString; 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

echo generateRandomString(20);
Salin selepas log masuk

3 sambungan fail (akhiran)

Fungsi berikut boleh mendapatkan sambungan fail atau akhiran dengan cepat.

function getExtension($filename){ 
 $myext = substr($filename, strrpos($filename, &#39;.&#39;)); 
 return str_replace(&#39;.&#39;,&#39;&#39;,$myext); 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

$filename = &#39;我的文档.doc&#39;; 
echo getExtension($filename);
Salin selepas log masuk

4 PHP mendapat saiz dan format fail

di bawah Fungsi yang digunakan boleh mendapatkan saiz fail dan menukarnya kepada format KB, MB dan lain-lain yang mudah dibaca.

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]); 
  } 
}
Salin selepas log masuk

digunakan seperti berikut:

$thefile = filesize(&#39;test_file.mp3&#39;); 
echo formatSize($thefile);
Salin selepas log masuk

5 PHP menggantikan aksara tag

Kadang-kadang kita perlukan untuk Untuk menggantikan rentetan dan teg templat dengan kandungan yang ditentukan, anda boleh menggunakan fungsi berikut:

function stringParser($string,$replacer){ 
  $result = str_replace(array_keys($replacer), array_values($replacer),$string); 
  return $result; 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

$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);
Salin selepas log masuk

6. Senarai PHP direktori Nama fail ialah

Jika anda ingin menyenaraikan semua fail dalam direktori, gunakan kod berikut:

function listDirFiles($DirPath){ 
  if($dir = opendir($DirPath)){ 
     while(($file = readdir($dir))!== false){ 
        if(!is_dir($DirPath.$file)) 
        { 
          echo "filename: $file<br />"; 
        } 
     } 
  } 
}
Salin selepas log masuk

Penggunaan adalah seperti berikut:

 listDirFiles(&#39;home/some_folder/&#39;);
Salin selepas log masuk

7 PHP mendapat URL halaman semasa

Fungsi berikut boleh mendapatkan URL halaman semasa, sama ada http atau 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; 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

 echo curPageURL();
Salin selepas log masuk

8. PHP memaksa memuat turun fail

Kadang-kadang kami tidak mahu Jika penyemak imbas terus membuka fail, seperti fail PDF, tetapi ingin memuat turun fail terus, fungsi berikut boleh memaksa fail dimuat turun Jenis pengepala strim aplikasi/oktet digunakan dalam fungsi.

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!"; 
  } 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

 download(&#39;/down/test_45f73e852.zip&#39;);
Salin selepas log masuk

9 PHP memintas panjang rentetan

Kami selalunya Apabila anda menghadapi situasi di mana anda perlu memintas panjang rentetan (termasuk aksara Cina), sebagai contoh, tajuk tidak boleh memaparkan lebih daripada beberapa aksara, dan lebihan panjang diwakili oleh..., fungsi berikut boleh memenuhi keperluan anda.

 /* 
 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; 
  } 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

$str = "jQuery插件实现的加载图片和页面效果"; 
echo cutStr($str,16);
Salin selepas log masuk

10 PHP mendapat IP sebenar klien

Kami selalunya Untuk merekodkan IP pengguna dalam pangkalan data, kod berikut boleh mendapatkan IP sebenar pelanggan:

//获取用户真实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); 
}
Salin selepas log masuk

Penggunaan adalah seperti berikut:

 echo getIp();
Salin selepas log masuk

11 , PHP menghalang suntikan SQL

Apabila kami menanyakan pangkalan data, atas sebab keselamatan, kami perlu menapis beberapa aksara yang menyalahi undang-undang untuk mengelakkan suntikan SQL yang berniat jahat lihat fungsi:

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; 
  } 
}
Salin selepas log masuk

Gunakan Kaedahnya adalah seperti berikut:

echo injCheck(&#39;1 or 1=1&#39;);
Salin selepas log masuk

12. Halaman PHP menggesa dan melompat

Apabila kami melakukan operasi borang, kadangkala kami memerlukan gesaan demi kemesraan Pengguna mengendalikan keputusan dan melompat ke halaman yang berkaitan Sila lihat fungsi berikut:

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; 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

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

13 masa pengiraan PHP

Apabila kita memproses masa, kita perlu mengira tempoh masa daripada masa semasa ke titik masa tertentu Contohnya, mengira masa berjalan klien biasanya diwakili oleh 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; 
}
Salin selepas log masuk

Kaedah penggunaan adalah seperti berikut:

$seconds = 3712; 
echo changeTimeType($seconds);
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!