Rumah  >  Artikel  >  hujung hadapan web  >  13 fungsi PHP yang sangat praktikal, yang manakah anda tahu?

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

PHPz
PHPzke hadapan
2016-05-16 15:35:502366semak imbas

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

Kaedah penggunaannya adalah seperti berikut:

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

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

Kaedah penggunaan adalah seperti berikut:

echo generateRandomString(20);

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

Kaedah penggunaan adalah seperti berikut:

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

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

digunakan seperti berikut:

$thefile = filesize(&#39;test_file.mp3&#39;); 
echo formatSize($thefile);

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

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

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

Penggunaan adalah seperti berikut:

 listDirFiles(&#39;home/some_folder/&#39;);

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

Kaedah penggunaan adalah seperti berikut:

 echo curPageURL();

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

Kaedah penggunaan adalah seperti berikut:

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

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

Kaedah penggunaan adalah seperti berikut:

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

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

Penggunaan adalah seperti berikut:

 echo getIp();

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

Gunakan Kaedahnya adalah seperti berikut:

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

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

Kaedah penggunaan adalah seperti berikut:

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

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

Kaedah penggunaan adalah seperti berikut:

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

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam