Heim  >  Artikel  >  php教程  >  PHP-Trainings-Tutorial, einige unauffällige PHP-Tipps

PHP-Trainings-Tutorial, einige unauffällige PHP-Tipps

巴扎黑
巴扎黑Original
2016-11-07 16:33:511511Durchsuche

Man sagt, es sei ein unauffälliger kleiner Trick, aber eigentlich sollte es sich um eine Routineanwendung handeln, die nicht häufig verwendet wird. Viele Dinge sind so eine Sache, sie nutzen zu können eine andere , und es zu üben ist eine andere Sache. Und um ein Meister zu werden, sind solide Grundkenntnisse erforderlich

Str_repeat

Es ist darauf angewiesen, Strings wiederholt auszugeben, ähnlich wie x in Perl

php -r 'echostr_repeat("ABC",5),"n";'

 ABCABCABCABCABCABC

 substr

 Dies wird zum Abfangen von Zeichen verwendet, z. B. zum Abfangen von Zeichenfolgen Der erste Buchstabe:

$string = 'abcdefg'

substr($string,0,1) wird a. Aber jetzt bin ich es gewohnt, $string[0] zu verwenden Bei der Beurteilung, ob die Länge der Zeichenfolge 7 beträgt, wird stattdessen isset($string[6]) verwendet, da gesagt wird, dass isset schneller ist als strlen. In gleicher Weise gilt diese Erfahrung auch für count
Trimmen

Trimmen wird verwendet, um führende und nachgestellte Leerzeichen sowie nachgestellte Zeilenumbrüche zu entfernen. Ich habe es also schon seit langem verwendet, daher dachte ich, dass es speziell für diesen Zweck entwickelt wurde Es funktioniert. Akzeptiert eine Parameterliste zum Entfernen unerwünschter Zeichen am Anfang und Ende, z. B. das Entfernen des % von „�cdef%“

trim('�cdef%','%')

weiter

Dieser Typ wird verwendet, um die folgenden Schleifen zu überspringen. Nachdem ich es lange verwendet hatte, dachte ich immer, es hätte keine Parameter, bis ich einmal aus einer dreistufigen Schleife springen wollte ...

ini_set

Wenn wir Programme basierend auf Netzwerkverbindungen schreiben, ist es notwendig, das Socket-Timeout aus Gründen der Fehlertoleranz festzulegen. Die in php.ini definierte Standardzeit beträgt 60 Sekunden 🎜>
Standard-Timeout für Socket-basierte Streams (Sekunden)

;http://php.net/default-socket-timeout

default_socket_timeout = 60

Sie können ini_set verwenden, um PHP in der .ini-Konfiguration des PHP-Handbuchs zu ändern. Daher habe ich Folgendes überlegt:

ini_set('default_socket_timeout',6);

Wenn der Autor einige neu entdeckte Funktionen verwendet , meine Gewohnheit ist:

var_dump(ini_set('default_socket_timeout',6));

Eine laufende Ergebnisaufforderung:

string(2) "60"

Ist die Einstellung fehlgeschlagen? Ich habe mehrere Maschinen ausprobiert und es sieht immer noch so aus. Nach langer Recherche habe ich endlich ein Problem gefunden, das im PHP-Handbuch beschrieben ist :

Rückgabewerte

Gibt bei Erfolg den alten Wert zurück, bei Fehler FALSE

Hey, ich habe das Handbuch zu nachlässig gelesen

posix_kill

Ich habe das Protokollrotationsskript von nginx in PHP geschrieben. Um PHP zu aktualisieren, werde ich nginx benachrichtigen. Beim Neugenerieren neuer Protokolle habe ich posix_kill verwendet:

posix_kill($nginx_pid,SIGUSR1)

Auf den N-Maschinen, die ich verwendet habe, funktionierte diese Funktion normal. Aber ich habe dieses Skript einem Kumpel geliehen und die Maschine hat Folgendes gemeldet:

Warnung: posix_kill() erwartet, dass Parameter 2 lang ist, Zeichenfolge angegeben

Schauen Sie sich den Funktionsprototyp an: bool posix_kill ( int$ pid, int $sig )

Der zweite Parameter muss an int übergeben werden. Warum erkennt SIGUSR1 auf meinem Rechner, aber nicht auf dem Rechner meines Kumpels? PHP-Versionsproblem? Die PHP-Version meines Kumpels ist tatsächlich besser als meine.

Ich habe lange online nach dem int-Wert gesucht, der SIGUSR1 entspricht, aber ich habe ihn schließlich nicht gefunden den Kill-Befehl eingegeben und versehentlich Folgendes eingegeben: kill -l und bekam es >
9) SIGKILL 10) SIGBUS 11)SIGSEGV 12) SIGSYS

13) SIGPIPE 14) SIGALRM 15)SIGTERM 16) SIGURG

17) SIGSTOP 18) SIGTSTP 19)SIGCONT 20 ) Sigchld

21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXC PU

25) sigxfsz 26) Sigvtalrm27) SigProf 28) sigusr1 Sigusr1 31)SIGUSR2

Das Obige gilt für Mac, aber der entsprechende Wert von SIGUSR1 für Linux ist nicht derselbe, sprachlos

1) SIGHUP 2) SIGINT 3)SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUSSIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13)SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) S IGTTOU 23)SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN 1 36) SIGRTMIN 2 37) SIGRTMIN 3

38) SIGRTMIN 4 39) SIGRTMIN 5 40) SIGRTMIN 6 41) SIGRTMIN 7 42) SIGRTMIN 8

43) Sigrtmin 9 44) Sigrtmin 10 45) Sigrtmin 11 46) Sigrtmin 12 47) Sigrtmin 13

48) Sigrtmin 14 49) Sigrtmin 1550) Sigrtmax-14 51) Sigrtmin Sigrtmin Sigrtmin SigrtMax 52) SIGRTMAX-12

  53) SIGRTMAX-11 54)SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

  58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61 ) SIGRTMAX-3 62) SIGRTMAX-2 

  63) SIGRTMAX-1 64) SIGRTMAX 


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