Heim  >  Artikel  >  Backend-Entwicklung  >  8 wesentliche PHP-Funktionen für die Entwicklung

8 wesentliche PHP-Funktionen für die Entwicklung

WBOY
WBOYOriginal
2016-08-08 09:33:04868Durchsuche

Programmierer, die PHP-Entwicklung durchgeführt haben, sollten wissen, dass es in PHP viele integrierte Funktionen gibt. Ihre Beherrschung kann Ihnen dabei helfen, sich in der PHP-Entwicklung besser zurechtzufinden alles sehr praktisch und ich hoffe, dass alle PHP-Entwickler sie beherrschen können.

1. Übergeben Sie beliebig viele Funktionsparameter

Bei der .NET- oder JAVA-Programmierung ist die Anzahl der Funktionsparameter im Allgemeinen festgelegt, PHP ermöglicht jedoch die Verwendung einer beliebigen Anzahl von Parametern. Das folgende Beispiel zeigt Ihnen die Standardparameter einer PHP-Funktion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 两个默认参数的函数
function foo($arg1 = ”, $arg2 = ”) {
 
echo “arg1: $arg1n”;
echo “arg2: $arg2n”;
 
}
 
foo(‘hello’,'world’);
 /* 输出:
arg1: hello
 arg2: world
 */
 
foo();
 /* 输出:
arg1:
 arg2:
 */
1 2

3

4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 是的,形参列表为空
function foo() {
 
// 取得所有的传入参数的数组
$args = func_get_args();
 
foreach ($args as $k => $v) {
 echo “arg”.($k 1).”: $vn”;
 }
 
}
 
foo();
 /* 什么也不会输出 */
 
foo(‘hello’);
 /* 输出
arg1: hello
 */
 
foo(‘hello’, ‘world’, ‘again’);
 /* 输出
arg1: hello
 arg2: world
 arg3: again
 */
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// Funktion mit zwei Standardparametern function foo($arg1 = ”, $arg2 = ”) { echo "arg1: $arg1n"; echo "arg2: $arg2n"; } foo(‘hello’,’world’); /* Ausgabe: arg1: hallo arg2: Welt */ foo(); /* Ausgabe: arg1: arg2: */
Das folgende Beispiel ist die Verwendung variabler Parameter in PHP, das die Methode ?func_get_args() verwendet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //Ja, die Parameterliste ist leer function foo() { //Erhalten Sie das Array aller eingehenden Parameter $args = func_get_args(); foreach ($args as $k =&gt ; $v) { echo "arg".($k 1).": $vn“; } } foo(); /* Es wird nichts ausgegeben */ foo(‘hello’); /* Ausgabe arg1: hallo */ foo('hello', 'world', 'again'); /* Ausgabe arg1: hallo arg2: Welt arg3: schon wieder */

2. Verwenden Sie glob(), um Dateien zu finden

Die Funktionsnamen der meisten PHP-Funktionen können ihren Zweck wörtlich verstehen, aber wenn Sie ?glob() sehen, wissen Sie möglicherweise nicht, wofür es verwendet wird. Tatsächlich können glob() und scandir() zur Suche verwendet werden Für Dateien beachten Sie bitte die folgende Verwendung:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 取得所有的后缀为PHP的文件
$files = glob(‘*.php’);
 
print_r($files);
 /* 输出:
Array
 (
 [0] => phptest.php
 [1] => pi.php
 [2] => post_output.php
 [3] => test.php
 )
 */
1 2

3

4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 取PHP文件和TXT文件
$files = glob(‘*.{php,txt}’, GLOB_BRACE);
 
print_r($files);
 /* 输出:
Array
 (
 [0] => phptest.php
 [1] => pi.php
 [2] => post_output.php
 [3] => test.php
 [4] => log.txt
 [5] => test.txt
 )
 */
5

6

7

1
2
3
4
5
6
7
8
9
10
$files = glob(‘../images/a*.jpg’);
 
print_r($files);
 /* 输出:
Array
 (
 [0] => ../images/apple.jpg
 [1] => ../images/art.jpg
 )
 */
8 9

10

11
1
2
3
4
5
6
7
8
9
10
11
12
13
$files = glob(‘../images/a*.jpg’);
 
// applies the function to each array element
 $files = array_map(‘realpath’,$files);
 
print_r($files);
 /* output looks like:
 Array
 (
 [0] => C:wampwwwimagesapple.jpg
 [1] => C:wampwwwimagesart.jpg
 )
 */
12 13
//Alle Dateien mit dem Suffix PHP abrufen $files = glob(‘*.php’); print_r($files); /* Ausgabe: Array ( [0] => phptest.php [1] => pi.php [2] => post_output.php [3] => test.php ) */
Sie können auch nach verschiedenen Suffixen suchen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //PHP-Dateien und TXT-Dateien abrufen $files = glob('*.{php,txt}', GLOB_BRACE); print_r($files); /* Ausgabe: Array ( [0] => phptest.php [1] => pi.php [2] => post_output.php [3] => test.php [4] => log.txt [5] => test.txt ) */
Sie können auch den Pfad hinzufügen:
1 2 3 4 5 6 7 8 9 10 $files = glob('../images/a*.jpg'); print_r($files); /* Ausgabe: Array ( [0] => ../images/apple.jpg [1] => ../images/art.jpg ) */
Wenn Sie den absoluten Pfad erhalten möchten, können Sie die Funktion ?realpath() aufrufen:
1 2 3 4 5 6 7 8 9 10 11 12 13 $files = glob('../images/a*.jpg'); // wendet die Funktion auf jedes Array-Element an $files = array_map('realpath code><code>',$files); print_r($files); /* Ausgabe sieht so aus: Array ( [0] => C:wampwwwimagesapple.jpg [1] => C:wampwwwimagesart.jpg ) */

3. Informationen zur Speichernutzung abrufen

Der Speicherrecyclingmechanismus von PHP ist bereits sehr leistungsfähig. Sie können auch PHP-Skripte verwenden, um die aktuelle Speichernutzung abzurufen, und die Funktion „memory_get_peak_usage()“ aufrufen, um den Spitzenspeicher abzurufen Verwendung. Der Referenzcode lautet wie folgt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
echo “Initial: “.memory_get_usage().” bytes n”;
 /* 输出
Initial: 361400 bytes
 */
 
// 使用内存
for ($i = 0; $i < 100000; $i ) {

$array []= md5($i);

}

// 删除一半的内存

for ($i = 0; $i < 100000; $i ) {

unset($array[$i]);

}

echo &ldquo;Final: &ldquo;.memory_get_usage().&rdquo; bytes n&rdquo;;

/* prints

Final: 885912 bytes

*/

echo &ldquo;Peak: &ldquo;.memory_get_peak_usage().&rdquo; bytes n&rdquo;;

/* 输出峰值

Peak: 13687072 bytes

*/

1

2

3

4

5
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

print_r(getrusage());

/* 输出

Array

(

[ru_oublock] => 0
 [ru_inblock] => 0
 [ru_msgsnd] => 2
 [ru_msgrcv] => 3
 [ru_maxrss] => 12692
 [ru_ixrss] => 764
 [ru_idrss] => 3864
 [ru_minflt] => 94
 [ru_majflt] => 0
 [ru_nsignals] => 1
 [ru_nvcsw] => 67
 [ru_nivcsw] => 4
 [ru_nswap] => 0
 [ru_utime.tv_usec] => 0
 [ru_utime.tv_sec] => 0
 [ru_stime.tv_usec] => 6269
 [ru_stime.tv_sec] => 0
 )
 
*/
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
echo „Initial: „.memory_get_usage().“ Bytes n“; /* Ausgabe Anfänglich: 361400 Bytes */ //Speicher verwenden for ($i = 0; $i < 100000; $i ) {<🎜> <🎜> $array []= md5($i);< 🎜> <🎜> }<🎜> <🎜> <🎜> <🎜>//Die Hälfte des Speichers löschen<🎜> <🎜>for ($i = 0; $i < 100000; $i ) {<🎜> <🎜> unset($array[$i]) ;<🎜> <🎜> }<🎜> <🎜> <🎜> <🎜>echo „Final: „.memory_get_usage().“ bytes n“;<🎜> <🎜> /* druckt<🎜> <🎜> Endgültig: 885912 Bytes<🎜> <🎜> */<🎜> <🎜> <🎜> <🎜>echo „Peak: „.memory_get_peak_usage().“ Bytes n“;<🎜> <🎜> /* Spitzenwert ausgeben<🎜> <🎜>Peak: 13687072 Bytes<🎜> <🎜> */<🎜> <🎜>
<🎜> <🎜> <🎜> 4. Informationen zur CPU-Nutzung abrufen <🎜> <🎜> Nachdem Sie die Speichernutzung ermittelt haben, können Sie auch getrusage() von PHP verwenden, um die CPU-Auslastung zu ermitteln. Diese Methode ist unter Windows nicht verfügbar. <🎜> <🎜> <🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜>8<🎜> <🎜>9<🎜> <🎜>10<🎜> <🎜>11<🎜> <🎜>12<🎜> <🎜>13<🎜> <🎜>14<🎜> <🎜>15<🎜> <🎜>16<🎜> <🎜>17<🎜> <🎜>18<🎜> <🎜>19<🎜> <🎜>20<🎜> <🎜>21<🎜> <🎜>22<🎜> <🎜>23<🎜> <🎜>24<🎜> <🎜> <🎜>print_r(getrusage());<🎜> <🎜> /* Ausgabe<🎜> <🎜>Array<🎜> <🎜> (<🎜> <🎜> [ru_oublock] => 0 [ru_inblock] => 0 [ru_msgsnd] => 2 [ru_msgrcv] => 3 [ru_maxrss] => 12692 [ru_ixrss] => 764 [ru_idrss] => 3864 [ru_minflt] => 94 [ru_majflt] => 0 [ru_nsignals] => 1 [ru_nvcsw] => 67 [ru_nivcsw] => 4 [ru_nswap] => 0 [ru_utime.tv_usec] => 0 [ru_utime.tv_sec] => 0 [ru_stime.tv_usec] => 6269 [ru_stime.tv_sec] => 0 ) */

Diese Struktur erscheint sehr unklar, es sei denn, Sie kennen die CPU sehr gut. Nachfolgend einige Erläuterungen:

  • ru_oublock: Ausgabevorgang blockieren
  • ru_inblock: Eingabeoperation blockieren
  • ru_msgsnd: Nachricht gesendet
  • ru_msgrcv: Nachricht erhalten
  • ru_maxrss: Maximale residente Satzgröße
  • ru_ixrss: Gesamtgröße des gemeinsam genutzten Speichers
  • ru_idrss: Größe des gesamten nicht gemeinsam genutzten Speichers
  • ru_minflt: Seitenrecycling
  • ru_majflt: Seite ungültig
  • ru_nsignals: Empfangene Signale
  • ru_nvcsw: Aktiver Kontextwechsel
  • ru_nivcsw: Passiver Kontextwechsel
  • ru_nswap: Swap-Bereich
  • ru_utime.tv_usec: Benutzermoduszeit (Mikrosekunden)
  • ru_utime.tv_sec: Benutzermoduszeit (Sekunden)
  • ru_stime.tv_usec: Systemkernzeit (Mikrosekunden)
  • ru_stime.tv_sec: Systemkernzeit? (Sekunden)

Um zu sehen, wie viel CPU Ihr Skript verbraucht, müssen wir uns die Werte „Benutzermoduszeit“ und „Systemkernelzeit“ ansehen. Die Sekunden- und Mikrosekundenteile werden separat bereitgestellt. Sie können den Mikrosekundenwert durch 1 Million dividieren und zum Sekundenwert addieren, um die Anzahl der Sekunden mit einem Bruchteil zu erhalten.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// sleep for 3 seconds (non-busy)
 sleep(3);
 
$data = getrusage();
 echo “User time: “.
 ($data['ru_utime.tv_sec']
 $data['ru_utime.tv_usec'] / 1000000);
 echo “System time: “.
 ($data['ru_stime.tv_sec']
 $data['ru_stime.tv_usec'] / 1000000);
 
/* 输出
User time: 0.011552
 System time: 0
 */
1 2

3

4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// loop 10 million times (busy)
 for($i=0;$i<10000000;$i ) {

}

$data = getrusage();

echo &ldquo;User time: &ldquo;.

($data['ru_utime.tv_sec']

$data['ru_utime.tv_usec'] / 1000000);

echo &ldquo;System time: &ldquo;.

($data['ru_stime.tv_sec']

$data['ru_stime.tv_usec'] / 1000000);

/* 输出

User time: 1.424592

System time: 0.004204

*/

<🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜>8<🎜> <🎜>9<🎜> <🎜>10<🎜> <🎜>11<🎜> <🎜>12<🎜> <🎜>13<🎜> <🎜>14<🎜> <🎜>15<🎜>
<🎜> <🎜>// 3 Sekunden lang schlafen (nicht beschäftigt)<🎜> <🎜> sleep(3);<🎜> <🎜> <🎜> <🎜>$data = getrusage();<🎜> <🎜> echo “Benutzerzeit: „.<🎜> <🎜> ($data['ru_utime.tv_sec' ] <🎜> <🎜> $data['ru_utime.tv_usec'] / 1000000);</code ><🎜> <🎜><code> echo “Systemzeit: „.<🎜> <🎜> ($data['ru_stime.tv_sec' ] <🎜> <🎜> $data['ru_stime.tv_usec'] / 1000000);</code ><🎜> <🎜> <🎜> <🎜><code>/* Ausgabe<🎜> <🎜>Benutzerzeit: 0,011552<🎜> <🎜> Systemzeit: 0<🎜> <🎜> */<🎜> <🎜>
<🎜> <🎜> <🎜> Schlaf beansprucht keine Systemzeit. Wir können uns das folgende Beispiel ansehen: <🎜> <🎜> <🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜>8<🎜> <🎜>9<🎜> <🎜>10<🎜> <🎜>11<🎜> <🎜>12<🎜> <🎜>13<🎜> <🎜>14<🎜> <🎜>15<🎜> <🎜>16<🎜> <🎜>17<🎜> <🎜> <🎜>// Schleife 10 Millionen Mal (beschäftigt)<🎜> <🎜> für($i=0;$i <10000000;$i ) {<🎜> <🎜> <🎜> <🎜>}<🎜> <🎜> <🎜> <🎜>$data = getrusage();<🎜> <🎜> echo “Benutzerzeit: „.<🎜> <🎜> ($data['ru_utime.tv_sec' ] <🎜> <🎜> $data['ru_utime.tv_usec'] / 1000000);</code ><🎜> <🎜><code> echo “Systemzeit: „.<🎜> <🎜> ($data['ru_stime.tv_sec' ] <🎜> <🎜> $data['ru_stime.tv_usec'] / 1000000);</code ><🎜> <🎜> <🎜> <🎜><code>/* Ausgabe<🎜> <🎜>Benutzerzeit: 1.424592<🎜> <🎜> Systemzeit: 0,004204<🎜> <🎜> */<🎜> <🎜>

Dies nahm etwa 14 Sekunden CPU-Zeit in Anspruch, wobei fast die gesamte Zeit davon Benutzerzeit war, da es keine Systemaufrufe gab.

Systemzeit ist die Zeit, die die CPU damit verbringt, Kernel-Anweisungen bei Systemaufrufen auszuführen. Hier ist ein Beispiel:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$start = microtime(true);

// keep calling microtime for about 3 seconds

while(microtime(true) &ndash; $start < 3) {

}

$data = getrusage();

echo &ldquo;User time: &ldquo;.

($data['ru_utime.tv_sec']

$data['ru_utime.tv_usec'] / 1000000);

echo &ldquo;System time: &ldquo;.

($data['ru_stime.tv_sec']

$data['ru_stime.tv_usec'] / 1000000);

/* prints

User time: 1.088171

System time: 1.675315

*/

1

2

3

4

5

6

7
1

2

3

4

5

6

7

// this is relative to the loaded script&rsquo;s path

// it may cause problems when running scripts from different directories

require_once(&lsquo;config/database.php&rsquo;);

// this is always relative to this file&rsquo;s path

// no matter where it was included from

require_once(dirname(__FILE__) . &lsquo;/config/database.php&rsquo;);

8

9

10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

// some code

// &hellip;

my_debug(&ldquo;some debug message&rdquo;, __LINE__);

/* 输出

Line 4: some debug message

*/

// some more code

// &hellip;

my_debug(&ldquo;another debug message&rdquo;, __LINE__);

/* 输出

Line 11: another debug message

*/

function my_debug($msg, $line) {

echo &ldquo;Line $line: $msgn&rdquo;;

}

11<🎜> <🎜>12<🎜> <🎜>13<🎜> <🎜>14<🎜> <🎜>15<🎜> <🎜>16<🎜> <🎜>17<🎜> <🎜>18<🎜>
<🎜> <🎜>$start = microtime(true);<🎜> <🎜> // Rufen Sie Microtime etwa 3 Sekunden lang auf<🎜> <🎜> while(microtime(true) – $start < 3) {<🎜> <🎜> <🎜> <🎜>}<🎜> <🎜> <🎜> <🎜>$data = getrusage();<🎜> <🎜> echo “Benutzerzeit: „.<🎜> <🎜> ($data['ru_utime.tv_sec' ] <🎜> <🎜> $data['ru_utime.tv_usec'] / 1000000);</code ><🎜> <🎜><code> echo “Systemzeit: „.<🎜> <🎜> ($data['ru_stime.tv_sec' ] <🎜> <🎜> $data['ru_stime.tv_usec'] / 1000000);</code ><🎜> <🎜> <🎜> <🎜><code>/* druckt<🎜> <🎜> Benutzerzeit: 1.088171<🎜> <🎜> Systemzeit: 1.675315<🎜> <🎜> */<🎜> <🎜>
<🎜> <🎜> <🎜>Wir können sehen, dass das obige Beispiel mehr CPU verbraucht. <🎜> <🎜> 5. Systemkonstanten abrufen <🎜> <🎜> PHP bietet sehr nützliche Systemkonstanten, mit denen Sie die aktuelle Zeilennummer (__LINE__), Datei (__FILE__), Verzeichnis (__DIR__), Funktionsnamen (__FUNCTION__), Klassennamen (__CLASS__), Methodennamen (__METHOD__) usw. abrufen können Namespace (__NAMESPACE__), ähnlich wie die C-Sprache. <🎜> <🎜>Wir können davon ausgehen, dass diese Dinge hauptsächlich zum Debuggen verwendet werden, aber das ist nicht unbedingt der Fall. Wir können beispielsweise ?__FILE__ verwenden, wenn wir andere Dateien einbinden (natürlich können Sie hier auch __DIR__ verwenden). ist ein Beispiel. <🎜> <🎜> <🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜> <🎜>// Dies ist relativ zum Pfad des geladenen Skripts<🎜> <🎜> // Es kann zu Problemen kommen, wenn Skripte aus verschiedenen Verzeichnissen ausgeführt werden<🎜> <🎜> require_once(‘config/database.php’);<🎜> <🎜> <🎜> <🎜>// Dies ist immer relativ zum Pfad dieser Datei<🎜> <🎜> // egal woher es eingefügt wurde<🎜> <🎜> require_once(dirname(__FILE__) . '/config/database.php') ;<🎜> <🎜>
<🎜> <🎜> <🎜> Im Folgenden wird __LINE__ verwendet, um einige Debug-Informationen auszugeben, die Ihnen beim Debuggen des Programms helfen: <🎜> <🎜> <🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜>8<🎜> <🎜>9<🎜> <🎜>10<🎜> <🎜>11<🎜> <🎜>12<🎜> <🎜>13<🎜> <🎜>14<🎜> <🎜>15<🎜> <🎜>16<🎜> <🎜>17<🎜> <🎜> <🎜>// etwas Code<🎜> <🎜> // …<🎜> <🎜>my_debug(“irgendeine Debug-Meldung”, __LINE__);<🎜> <🎜> /* Ausgabe<🎜> <🎜>Zeile 4: eine Debug-Meldung<🎜> <🎜> */<🎜> <🎜> <🎜> <🎜>// noch etwas Code<🎜> <🎜> // …<🎜> <🎜>my_debug(„eine weitere Debug-Nachricht“, __LINE__);<🎜> <🎜> /* Ausgabe<🎜> <🎜>Zeile 11: eine weitere Debug-Meldung<🎜> <🎜> */<🎜> <🎜> <🎜> <🎜>function my_debug($msg, $line) {<🎜> <🎜> echo “Zeile $line: $msg< /code><code>n“;<🎜> <🎜> }<🎜> <🎜>

 6. Generieren Sie eine eindeutige ID

Viele Freunde verwenden md5(), um eindeutige Zahlen zu generieren, aber md5() weist mehrere Mängel auf: 1. Unordnung, was zu einer verringerten Sortierleistung in der Datenbank führt. 2. Zu lang und erfordert mehr Speicherplatz. Tatsächlich verfügt PHP über eine Funktion zum Generieren einer eindeutigen ID. Diese Funktion ist uniqid(). So verwenden Sie es:

1

2

3

4

5

6

7

8

9

10

11

// generate unique string

echo uniqid();

/* 输出

4bd67c947233e

*/

// generate another unique string

echo uniqid();

/* 输出

4bd67c9472340

*/

1

2

3

4
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

// 前缀

echo uniqid(&lsquo;foo_&rsquo;);

/* 输出

foo_4bd67d6cd8b8f

*/

// 有更多的熵

echo uniqid(&rdquo;,true);

/* 输出

4bd67d6cd8b926.12135106

*/

// 都有

echo uniqid(&lsquo;bar_&rsquo;,true);

/* 输出

bar_4bd67da367b650.43684647

*/

5

6

7

8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

// 一个复杂的数组

$myvar = array(

&lsquo;hello&rsquo;,

42,

array(1,&rsquo;two&rsquo;),

&lsquo;apple&rsquo;

);

// 序列化

$string = serialize($myvar);

echo $string;

/* 输出

a:4:{i:0;s:5:&rdquo;hello&rdquo;;i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:&rdquo;two&rdquo;;}i:3;s:5:&rdquo;apple&rdquo;;}

*/

// 反序例化

$newvar = unserialize($string);

print_r($newvar);

/* 输出

Array

(

[0] => hello
 [1] => 42
 [2] => Array
 (
 [0] => 1
 [1] => two
 )
 
[3] => apple
 )
 */
9 10 11
// generiert eine eindeutige Zeichenfolge echo uniqid(); /* Ausgabe 4bd67c947233e */ // eine weitere eindeutige Zeichenfolge generieren echo uniqid(); /* Ausgabe 4bd67c9472340 */
Dieser Algorithmus wird basierend auf dem CPU-Zeitstempel generiert, sodass in einem ähnlichen Zeitraum die ersten paar Ziffern der ID gleich sind, was auch die Sortierung von IDs erleichtert. Wenn Sie Duplikate besser vermeiden möchten, können Sie vorangehen Fügen Sie der ID ein Präfix hinzu, z. B.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // Präfix echo uniqid(‘foo_’); /* Ausgabe foo_4bd67d6cd8b8f */ // Mehr Entropie echo uniqid(”,true); /* Ausgabe 4bd67d6cd8b926.12135106 */ //Alle echo uniqid(‘bar_’,true); /* Ausgabe bar_4bd67da367b650.43684647 */
7. Serialisierung Die PHP-Serialisierungsfunktion wird möglicherweise immer häufiger verwendet. Wenn Sie Daten in einer Datenbank oder Datei speichern müssen, können Sie die Methoden serialize() und unserialize() in PHP verwenden, um eine Serialisierung und Deserialisierung zu erreichen folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //Ein komplexes Array $myvar = array( ‚Hallo‘, 42, array(1,’two’), ‘Apfel’ ); //Serialisierung $string = serialize($myvar); echo $string; /* Ausgabe a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i: 1;s:3:"two";}i:3;s:5:"apple";} */ //Deserialisierung $newvar = unserialize($string); print_r($newvar); /* Ausgabe Array ( [0] => hallo [1] => 42 [2] => Array ( [0] => 1 [1] => zwei ) [3] => Apfel ) */

Wie serialisiere ich das JSON-Format? Keine Sorge, PHP hat dies bereits für Sie erledigt. Benutzer, die PHP 5.2 oder höher verwenden, können die Funktionen json_encode() und json_decode() verwenden, um das JSON-Format zu serialisieren :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// a complex array
 $myvar = array(
‘hello’,
42,
 array(1,’two’),
‘apple’
);
 
// convert to a string
 $string = json_encode($myvar);
 
echo $string;
 /* prints
 ["hello",42,[1,"two"],”apple”]
 */
 
// you can reproduce the original variable
 $newvar = json_decode($string);
 
print_r($newvar);
 /* prints
 Array
 (
 [0] => hello
 [1] => 42
 [2] => Array
 (
 [0] => 1
 [1] => two
 )
 
[3] => apple
 )
 */
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
// ein komplexes Array $myvar = array( ‚Hallo‘, 42, array(1,’two’), ‘Apfel’ ); // in einen String konvertieren $string = json_encode($myvar); echo $string; /* druckt ["hello",42,[1,"two"],"apple"] */ // Sie können die ursprüngliche Variable reproduzieren $newvar = json_decode($string); print_r($newvar); /* druckt Array ( [0] => hallo [1] => 42 [2] => Array ( [0] => 1 [1] => zwei ) [3] => Apfel ) */

8. String-Komprimierung

Wenn wir über Komprimierung sprechen, denken wir vielleicht an Dateikomprimierung. Tatsächlich können Zeichenfolgen auch komprimiert werden. PHP bietet die Funktionen ?gzcompress() und gzuncompress():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$string =
“Lorem ipsum dolor sit amet, consectetur
 adipiscing elit. Nunc ut elit id mi ultricies
 adipiscing. Nulla facilisi. Praesent pulvinar,
 sapien vel feugiat vestibulum, nulla dui pretium orci,
 non ultricies elit lacus quis ante. Lorem ipsum dolor
 sit amet, consectetur adipiscing elit. Aliquam
 pretium ullamcorper urna quis iaculis. Etiam ac massa
 sed turpis tempor luctus. Curabitur sed nibh eu elit
 mollis congue. Praesent ipsum diam, consectetur vitae
 ornare a, aliquam a nunc. In id magna pellentesque
 tellus posuere adipiscing. Sed non mi metus, at lacinia
 augue. Sed magna nisi, ornare in mollis in, mollis
 sed nunc. Etiam at justo in leo congue mollis.
 Nullam in neque eget metus hendrerit scelerisque
 eu non enim. Ut malesuada lacus eu nulla bibendum
 id euismod urna sodales. “;
 
$compressed = gzcompress($string);
 
echo “Original size: “. strlen($string).”n”;
 /* 输出原始大小
Original size: 800
 */
 
echo “Compressed size: “. strlen($compressed).”n”;
 /* 输出压缩后的大小
Compressed size: 418
 */
 
// 解压缩
$original = gzuncompress($compressed);
1 2

3

4

5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
$string = „Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ut elit id mi ultricies adipiscing. Nulla facilisi, sapien vel feugiat vestibulum, nulla dui pretium orci, Non ultricies elit lacus quis ante <code> sit amet, consectetur adipiscing elit. Pretium ullamcorper urna quis iaculis. sed turpis tempor luctus <code> mollis congue. Praesent ipsum diam, consectetur vitae ornare a, aliquam a nunc. In id magna pellentesque Tellus posuere adipiscing. Sed non mi metus, at lacinia augue <code> sed nunc <code> Nullam in neque eget metus hendrerit scelerisque eu non enim. Ut malesuada lacus eu nulla bibendum id euismod urna sodales „; $compressed = gzcompress($string); echo „Originalgröße:“ strlen($string)."n"; /* Originalgröße ausgeben Originalgröße: 800 */ echo „Komprimierte Größe:“ strlen($compressed)."n"; /* Gibt die komprimierte Größe aus Komprimierte Größe: 418 */ //Dekomprimieren $original = gzuncompress($compressed);
Fast 50 % Komprimierungsverhältnis. Gleichzeitig können Sie zum Komprimieren auch die Funktionen ?gzencode() und gzdecode() verwenden, indem Sie einfach unterschiedliche Komprimierungsalgorithmen verwenden. Die oben genannten 8 wesentlichen PHP-Funktionen für die Entwicklung sind alle praktisch? Das Obige stellt 8 PHP-Funktionen vor, die für die Entwicklung erforderlich sind, einschließlich verwandter Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, 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