Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung und Anordnung super praktischer PHP-Funktionen

Zusammenfassung und Anordnung super praktischer PHP-Funktionen

伊谢尔伦
伊谢尔伦Original
2016-11-26 16:11:26924Durchsuche

1. PHP-Verschlüsselung und -Entschlüsselung

PHP-Verschlüsselungs- und -Entschlüsselungsfunktionen können verwendet werden, um einige nützliche Zeichenfolgen zu verschlüsseln und in der Datenbank zu speichern und die Zeichenfolgen reversibel zu entschlüsseln . .

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

Die Verwendungsmethode ist wie folgt:

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

2. PHP generiert eine zufällige Zeichenfolge

Wenn wir einen zufälligen Namen und ein temporäres Passwort generieren müssen und andere Zeichenfolgen können wir die folgende Funktion verwenden:

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

Die Verwendungsmethode ist wie folgt:

echo generateRandomString(20);

3. PHP erhält die Dateierweiterung (Suffix)

Die folgenden Funktionen können die Datei schnell abrufen. Die Erweiterung ist das Suffix.

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

Die Verwendungsmethode ist wie folgt:

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

4. PHP ruft die Dateigröße ab und formatiert sie

Die unten verwendete Funktion kann die Dateigröße ermitteln und konvertieren Sie es in leicht lesbare KB-, MB- und andere Formate.

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

Die Verwendungsmethode ist wie folgt:

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

5. PHP ersetzt Tag-Zeichen

Manchmal müssen wir Zeichenfolgen und Vorlagen-Tags durch bestimmte Inhalte ersetzen. Sie können die folgende Funktion verwenden:

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

Die Verwendungsmethode ist wie folgt:

$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. PHP listet die Dateinamen im Verzeichnis auf

Wenn Sie möchten das Verzeichnis für alle Dateien darunter auflisten:

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

Die Verwendungsmethode ist wie folgt:

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

7. PHP ruft die aktuelle Seiten-URL ab

Die folgende Funktion kann die URL der aktuellen Seite abrufen, egal ob http oder 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; 
}

Die Verwendungsmethode ist wie folgt:

echo curPageURL();

8. PHP erzwingt das Herunterladen von Dateien

Manchmal möchten wir nicht, dass der Browser Dateien direkt öffnet B. PDF-Dateien, aber um die Datei direkt herunterzuladen, kann die folgende Funktion das Herunterladen der Datei erzwingen. Der Headertyp application/octet-stream wird in der Funktion verwendet.

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

Die Verwendungsmethode ist wie folgt:

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

9. PHP fängt die Länge einer Zeichenfolge ab

Wir stoßen oft auf die Notwendigkeit, die Länge von abzufangen Eine Zeichenfolge (einschließlich chinesischer Zeichen). Beispielsweise darf die Titelanzeige die Anzahl der Zeichen nicht überschreiten, und die Überlänge wird durch ... ausgedrückt. Die folgende Funktion kann Ihren Anforderungen entsprechen.

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

Die Verwendungsmethode ist wie folgt:

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

10. Holen Sie sich die echte IP des Clients mit PHP

Wir verwenden häufig die Datenbank, um die IP des Benutzers aufzuzeichnen . Der folgende Code kann die tatsächliche IP des Clients erhalten:

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

Die Verwendungsmethode ist wie folgt:

echo getIp();

11. PHP verhindert SQL-Injection

Wenn wir die Datenbank abfragen, müssen aus Sicherheitsgründen einige illegale Zeichen gefiltert werden, um eine bösartige SQL-Injection zu verhindern. Bitte sehen Sie sich die Funktion an:

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

Die Verwendung ist wie folgt:

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

12. PHP-Seitenaufforderungen und -sprünge

Wenn wir Formularoperationen durchführen, müssen wir den Benutzer aus Gründen der Benutzerfreundlichkeit manchmal nach den Operationsergebnissen fragen die folgende Funktion:

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

Die Verwendungsmethode ist wie folgt:

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

13. PHP-Berechnungszeit

Bei der Verarbeitungszeit müssen wir die Zeit berechnen zwischen der aktuellen Zeit und einem bestimmten Zeitpunkt. Bei der Berechnung der Client-Laufzeit wird sie beispielsweise normalerweise durch hh:mm:ss ausgedrückt.

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

Die Anwendung ist wie folgt:

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn