ホームページ  >  記事  >  php教程  >  PHPを使用してWebサイト全体からHTMLの純粋な静的Webページを生成する方法のまとめ

PHPを使用してWebサイト全体からHTMLの純粋な静的Webページを生成する方法のまとめ

高洛峰
高洛峰オリジナル
2016-12-21 11:25:411414ブラウズ

この記事の例では、PHP でのマルチスレッド同時実行の実装方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

Java のマルチスレッドは Apache に依存する新しいスレッドであり、Linux の下部にマルチスレッド メソッドがあります。

Apache サーバーを制御できない場合に PHP の同時実行をシミュレートする方法は次のとおりです

<?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();
?>

上記のコードはローカルにファイルを書き込みます。

localhost/a.php にアクセスして、できるだけ早く 2 つのブラウザ タブを同時に開くと、2 つのファイルの作成時間の差は 3 秒であることがわかります

しかし、localhost/a.php にアクセスすると、 php?act=b もう 1 つ /a.php?act=a にアクセスすると、2 つのファイルがほぼ同時に作成されたことがわかります。

Apache の場合、同じ URL はスレッド (またはプロセス) を意味しますが、異なる URL は同時実行性を意味します。

php内にダウンロードアクションがある場合

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

Asホストに限り、アクセスされた URL が異なる場合、それらは異なるプロセスとみなされ、同時実行が行われます。ファイルの作成時間は 3 秒ではありません

ローカル Linux サーバーを持っている友人は、Linux を使用して同時実行をシミュレートすることもできます

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

上記を test.php として保存し、SHELL コードを記述します

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


さらに PHP はWeb サイト全体を変換する 純粋な静的 HTML Web ページを生成する方法の概要については、PHP 中国語 Web サイトの関連記事に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。