Heim >Backend-Entwicklung >PHP-Tutorial >Einige übersehene PHP-Funktionen (organisiert)

Einige übersehene PHP-Funktionen (organisiert)

WBOY
WBOYOriginal
2016-08-08 09:29:381480Durchsuche

Von: http://www.gracecode.com/posts/3013.html

Sie müssen es wirklich nicht wissen, tatsächlich gibt es immer noch viele gute Dinge, die wir sind in PHP vertraut, die wir noch nicht entdeckt haben. Als ich diesen Artikel sah, brach ich mehrmals in Tränen aus. Ich kann ihn nur wärmstens empfehlen und werde ihn selbst in den Griff bekommen.

sys_getloadavg()

Diese Funktion gibt die Auslastungsdurchschnittsinformationen des aktuellen Systems zurück (natürlich). Gilt nicht unter Windows. Eine ausführliche Dokumentation finden Sie in der entsprechenden PHP-Dokumentation. Das Dokument enthält einen Beispielcode, dessen Verwendung im Grunde gesehen werden kann.

<codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto><?php $load = sys_getloadavg(); if ($load[0] > 80) { header('HTTP/1.1 503 Too busy, try again later'); die('Server too busy. Please try again later.'); } <p>PS: Wenn Sie diese Funktion „leider“ nicht in Ihrer PHP-Umgebung haben, können Sie über die Verwendung des folgenden Codes nachdenken.</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>if (!function_exists('sys_getloadavg')) { function sys_getloadavg() { $loadavg_file = '/proc/loadavg'; if (file_exists($loadavg_file)) { return explode(chr(32),file_get_contents($loadavg_file)); } return array(0,0,0); } } <p>Wenn diese Funktion ordnungsgemäß verwendet wird, Kann den Druck auf den Server etwas verringern. </p> <p>pack()</p> <p>pack Es gibt auch eine Funktion, die dem Entpacken entspricht und zum Komprimieren von Binärzeichenfolgen verwendet wird. Das Beispiel des Autors im Artikel ist sehr klar </p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>$pass_hash = pack("H*", md5("my-password")); <p>Wenn Sie PHP5 verwenden, können Sie direkt so aussehen </p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>$pass_hash = md5("my-password", true); // PHP 5+ <p>Einer der Vorteile dieser Vorgehensweise besteht darin, dass dadurch der Speicherplatz für Zeichenfolgen reduziert werden kann (wie viel kann gespart werden? Dies ist möglicherweise ein weiterer Artikel ). </p> <p>Hier ist auch ein Beispielcode, der das Array packen kann über</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto><?php function pack_array($v,$a) { return call_user_func_array(pack,array_merge(array($v),(array)$a)); } </code>

cal_days_in_month()

Diese Funktion kann direkt die Anzahl der Tage im angegebenen Monat zurückgeben, wie zum Beispiel

<codeCourier New',sans-serif; word-wrap:break-word; font-size:0.9em; overflow-x:auto">$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); // 31 </code>

Ich kann garantieren, dass Sie selbst eine Funktion mit ähnlichen Funktionen implementiert haben :^)

_()

Nun, das ist tatsächlich eine PHP-Funktion (Es kann auch die kürzeste in PHP integrierte Funktion sein). _() ist sein „Spitzname“ und sein großer Name ist gettext().

Freunde, die WordPress-Skins geschrieben haben, werden tatsächlich über __() und _e() diese Funktionen Bescheid wissen PHP bringt entsprechende Funktionen bereits mit.

<codeCourier New',sans-serif; word-wrap:break-word; font-size:0.9em; overflow-x:auto">// Set language to German setlocale(LC_ALL, 'de_DE'); // Specify location of translation tables bindtextdomain("myPHPApp", "./locale"); // Choose domain textdomain("myPHPApp"); echo _("Have a nice day"); </code>

Sie können gettext verwenden, um mehrsprachige Anwendungen zu schreiben, aber dies ist nicht mehr der Schwerpunkt dieses Artikels. Weitere Informationen finden Sie hier Hier.

get_browser()

Um ehrlich zu sein, bin ich in Tränen ausgebrochen, als ich diese Funktion gesehen habe. Mit dieser Funktion müssen Sie die Zeichenfolge $_SERVER['HTTP_USER_AGENT'] nicht mehr selbst analysieren.

Weitere Informationen finden Sie hier. Bevor Sie diese Funktion verwenden, benötigen Sie möglicherweise eine Konfigurationsdatei browscap.ini. Ich glaube, Sie können damit umgehen.

debug_print_backtrace()

In der Vergangenheit habe ich Erweiterungen wie xdebug verwendet, um den Funktionsaufrufstapel anzuzeigen. Tatsächlich verfügt die PHP5-Version über integrierte verwandte Funktionen.

Übrigens möchte ich einen kleinen „schmerzhaften“ Tipp geben. Wenn Sie sich nicht an den Namen dieser Funktion erinnern können, können Sie diesen Code verwenden, um das gleiche Ziel zu erreichen (es scheint mehr zu sein). zuverlässig, um sich diese Funktion zu merken):

getTraceAsString()));

natsort()

Diese Funktion wird für die natürliche Sortierung verwendet, die möglicherweise jeder verwenden muss. Veröffentlichen Sie die relevanten Dokumentlinks und den Beispielcode

$items = array("100 apples", "5 apples", "110 apples", "55 apples"); // normal sorting: sort($items); print_r($items); # Outputs: # Array # ( # [0] => 100 apples # [1] => 110 apples # [2] => 5 apples # [3] => 55 apples # ) natsort($items); print_r($items); # Outputs: # Array # ( # [2] => 5 apples # [3] => 55 apples # [0] => 100 apples # [1] => 110 apples # )

Für die Algorithmusregeln der natürlichen Sortierung können Sie sich hier auf das Dokument beziehen.

glob()

Die Funktion dieser Funktion bringt die Leute auch zum Weinen. Sprechen wir nicht über die Funktion und gehen wir direkt zum Beispielcode.

foreach (glob("*.php") as $file) { echo "$file\n"; }

Verglichen mit was Wenn Sie diese Funktion bereits kennen, können wir weitere „Spiele“ durchführen, z. B. das Anzeigen des Verzeichnisses (über):

$dirs = array_filter(glob($path.'*'), 'is_dir');

Natürlich können Sie auch die Verwendung der SPL-Erweiterung für die Dateirekursion in Betracht ziehen.

Ergänzung durch 神仙:

glob 有个参数选项 GLOB_ONLYDIR 就可以只列目录

PHP-Filter

Wenn Sie den String noch regelmäßig validieren, dann ist er wirklich „Out“. Seit der PHP5.2-Version ist der PHP-Filter integriert Das Modul wird verwendet, um gezielt zu überprüfen, ob E-Mails, URLs usw. legitim sind. Beispielcode:

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));

Da es sich um ein neues Modul handelt, gibt es noch viele Fallen, wie z. B.

filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false) filter_var('0', FILTER_VALIDATE_BOOLEAN); // bool(false)

Aber das hält uns nicht davon ab, es zu versuchen. Für weitere Informationen zum PHP-Filter glaube ich, dass ich einen weiteren Artikel schreiben kann.

-- Split --

Abschließend bedauere ich, dass PHP tatsächlich ein altehrwürdiges Werkzeug ist. Wenn wir nicht aufpassen, werden wir das Rad auf tragische Weise neu erfinden. Werfen Sie daher von Zeit zu Zeit einen Blick in die PHP-Dokumentation und Sie werden jedes Mal etwas Neues lernen.


Das Obige hat einige vernachlässigte PHP-Funktionen (organisiert) eingeführt, einschließlich relevanter Inhalte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

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