Heim >Backend-Entwicklung >PHP-Tutorial >php: Fassen Sie einige praktische benutzerdefinierte Funktionen zusammen
Obwohl die mit PHP gelieferte Funktionsbibliothek sehr leistungsfähig ist, müssen wir in vielen alltäglichen Situationen immer noch unsere eigenen benutzerdefinierten Funktionen schreiben, um bestimmte Funktionen und Anforderungen zu erfüllen. Nachfolgend finden Sie eine Sammlung weiterer praktischer benutzerdefinierter Funktionen, die einige häufige Anforderungen erfüllen, z. B. das Konvertieren von URL-Zeichenfolgen in Hyperlinks, das Auflisten von Verzeichnisinhalten, das Überprüfen von E-Mail-Adressen usw.
1 . PHP-lesbarer Zufallsstring
Dieser Code erstellt einen lesbaren String, der dem Wort im Wörterbuch näher kommt, praktisch ist und über Funktionen zur Passwortüberprüfung verfügt.
function readable_random_string($length = 6){ $conso=array("b","c","d","f","g","h","j","k","l", "m","n","p","r","s","t","v","w","x","y","z"); $vocal=array("a","e","i","o","u"); $password=""; srand ((double)microtime()*1000000); $max = $length/2; for($i=1; $i<=$max; $i++) { $password.=$conso[rand(0,19)]; $password.=$vocal[rand(0,4)]; } return $password; }
2. PHP generiert eine zufällige Zeichenfolge
Wenn Sie keine lesbare Zeichenfolge benötigen, verwenden Sie stattdessen diese Funktion, um eine zufällige Zeichenfolge als zufälliges Passwort des Benutzers zu erstellen.
function generate_rand($l){ $c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; srand((double)microtime()*1000000); for($i=0; $i < $l; $i++) { $rand.= $c[rand()%strlen($c)]; } return $rand; }
3. PHP-codierte E-Mail-Adresse
Mit diesem Code kann jede E-Mail-Adresse als HTML-Character Entity codiert werden, um sie vor der Erfassung durch Spammer zu schützen.
function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class="emailencoder"' ) { // remplazar aroba y puntos $email = str_replace('@', '@', $email); $email = str_replace('.', '.', $email); $email = str_split($email, 5); $linkText = str_replace('@', '@', $linkText); $linkText = str_replace('.', '.', $linkText); $linkText = str_split($linkText, 5); $part1 = '<、a href="ma'; $part2 = 'ilto:'; $part3 = '" '. $attrs .' >'; $part4 = '<、/a>'; $encoded = '<、script type="text/javascript">'; $encoded .= "document.write('$part1');"; $encoded .= "document.write('$part2');"; foreach($email as $e) { $encoded .= "document.write('$e');"; } $encoded .= "document.write('$part3');"; foreach($linkText as $l) { $encoded .= "document.write('$l');"; } $encoded .= "document.write('$part4');"; $encoded .= '<、/script>'; return $encoded; }
4. PHP-Bestätigung der E-Mail-Adresse
Die E-Mail-Bestätigung ist möglicherweise die am häufigsten verwendete Webseite bei der Formularverifizierung Sie können auch die MX-Einträge im DNS überprüfen, zu dem die E-Mail-Domäne gehört, um die E-Mail-Verifizierungsfunktion leistungsfähiger zu machen.
function is_valid_email($email, $test_mx = false) { if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email)) if($test_mx) { list($username, $domain) = split("@", $email); return getmxrr($domain, $mxrecords); } else return true; else return false; }
5. PHP listet Verzeichnisinhalte auf
function list_files($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while(($file = readdir($handle)) !== false) { if($file != "." && $file != ".." && $file != "Thumbs.db"){ echo '<、a target="_blank" href="'.$dir.$file.'">'.$file.'<、/a><、br>'."\n"; } } closedir($handle); } } }
6. PHP zerstört Verzeichnis
Löscht ein Verzeichnis, einschließlich seines Inhalts.
function destroyDir($dir, $virtual = false) { $ds = DIRECTORY_SEPARATOR; $dir = $virtual ? realpath($dir) : $dir; $dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir; if (is_dir($dir) && $handle = opendir($dir)) { while ($file = readdir($handle)) { if ($file == '.' || $file == '..') { continue; } elseif (is_dir($dir.$ds.$file)) { destroyDir($dir.$ds.$file); } else { unlink($dir.$ds.$file); } } closedir($handle); rmdir($dir); return true; } else { return false; } }
7. PHP analysiert JSON-Daten
Wie die meisten gängigen Webdienste wie Twitter, die Daten über offene APIs bereitstellen, weiß es immer, wie verschiedene API-Datenübertragungsformate, einschließlich JSON, analysiert werden , XML usw.
$json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} '; $obj=json_decode($json_string); echo $obj->name; //prints foo echo $obj->interest[1]; //prints php
8. PHP analysiert XML-Daten
//xml string $xml_string=" <、users> <、user id='398'> <、name>Foo<、/name> <、email>foo@bar.com<、/name> <、/user> <、user id='867'> <、name>Foobar<、/name> <、email>foobar@foo.com<、/name> <、/user> <、/users>"; //load the xml string using simplexml $xml = simplexml_load_string($xml_string); //loop through the each node of user foreach ($xml->user as $user) { //access attribute echo $user['id'], ' '; //subnodes are accessed by -> operator echo $user->name, ' '; echo $user->email, '<、br />'; }
9. PHP erstellt Protokollabkürzungen
Erstellt benutzerfreundliche Protokollabkürzungen.
function create_slug($string){ $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string); return $slug; }
10. PHP ruft die echte IP-Adresse des Clients ab
Diese Funktion ruft die echte IP-Adresse des Benutzers ab, auch wenn er einen Proxyserver verwendet.
function getRealIpAddr() { if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; }
11. PHP obligatorischer Datei-Download
bietet Benutzern eine obligatorische Datei-Download-Funktion.
function force_download($file) { if ((isset($file))&&(file_exists($file))) { header("Content-length: ".filesize($file)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $file . '"'); readfile("$file"); } else { echo "No file selected"; } }
Das obige ist der detaillierte Inhalt vonphp: Fassen Sie einige praktische benutzerdefinierte Funktionen zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!