Heim  >  Artikel  >  php教程  >  Zusammenfassung der Methoden zum Generieren reiner statischer HTML-Webseiten aus der gesamten Website mithilfe von PHP

Zusammenfassung der Methoden zum Generieren reiner statischer HTML-Webseiten aus der gesamten Website mithilfe von PHP

高洛峰
高洛峰Original
2016-12-21 11:25:411372Durchsuche

Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode der Multithread-Parallelität in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Multi-Threading in Java ist eine neue Thread-Sache. PHP basiert auf Apache und es gibt eine Multi-Threading-Methode am Ende von Linux.

So simulieren Sie PHP-Parallelität, wenn Sie den Apache-Server nicht steuern können

<?php
if(function_exists(&#39;date_default_timezone_set&#39;)) {
  date_default_timezone_set(&#39;PRC&#39;);
}
function a()
{
 $time = time();
 sleep(3);
 $fp = fopen(&#39;result_a&#39;.$time.&#39;.log&#39;, &#39;w&#39;);
 fputs($fp, &#39;Set in &#39; . Date(&#39;h:i:s&#39;, time()) . (double)microtime() . "rn");
 fclose($fp);
}
function b()
{
 $time = time();
 sleep(3);
 $fp = fopen(&#39;result_b&#39;.$time.&#39;.log&#39;, &#39;w&#39;);
 fputs($fp, &#39;Set in &#39; . Date(&#39;h:i:s&#39;, time()) . (double)microtime() . "rn");
 fclose($fp);
}
if(!isset($_GET[&#39;act&#39;])) $_GET[&#39;act&#39;] = &#39;a&#39;;
if($_GET[&#39;act&#39;] == &#39;a&#39;)
{
 a();
}
else if($_GET[&#39;act&#39;] == &#39;b&#39;) b();
?>

Der obige Code schreibt eine Datei lokal.

Wenn Sie localhost/a.php besuchen und so schnell wie möglich zwei Browser-Tabs gleichzeitig öffnen, werden Sie feststellen, dass der Unterschied in der Erstellungszeit der beiden Dateien 3 Sekunden beträgt

Aber wenn Sie localhost/a .php?act=b besuchen. Ein weiterer Besuch /a.php?act=a stellt fest, dass die beiden Dateien fast gleichzeitig erstellt wurden.

Für Apache bedeutet dieselbe URL einen Thread (oder Prozess), aber unterschiedliche URLs bedeuten Parallelität.

Wenn es eine Download-Aktion in PHP gibt

function runThread()
{
 down("http://localhost/test/a.php?act=a");
}
if($_GET[&#39;act&#39;] == &#39;run&#39;)
{
 echo &#39;start:&#39;;
 runThread();
 echo &#39; End&#39;;
}

http://localhost/test/a.php?act=run

http://localhost/ test /a.php?act=run&s=2

Solange die von den Hauptbenutzern besuchten URLs unterschiedlich sind, werden sie als unterschiedliche Prozesse betrachtet, was Parallelität bedeutet. Die Dateierstellungszeit beträgt nicht 3 Sekunden

Freunde, die einen lokalen Linux-Server haben, können auch Linux verwenden, um Parallelität zu simulieren

<?php
for ($i=0;$i<10;$i++) {
echo $i;
sleep(5);
}
?>

Speichern Sie das Obige als test.php und schreiben Sie dann eine SHELL Code

#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
php -q test.php &
done


Weitere PHP-Methoden zum Generieren reiner statischer HTML-Webseiten für die gesamte Website finden Sie auf der chinesischen PHP-Website für verwandte Artikel!


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