ホームページ >バックエンド開発 >PHPチュートリアル >PHP は URL に基づいてサムネイルを自動的に生成し、同時実行性の問題を処理します_PHP チュートリアル

PHP は URL に基づいてサムネイルを自動的に生成し、同時実行性の問題を処理します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:40:13727ブラウズ

サーバーがサムネイルを生成するタイミングには、一般に 2 種類があります。ファイルがアップロードされたときに生成されるものと、アクセスされたときに生成されるものです。ここでは、PHP が URL に基づいてサムネイルを自動的に生成し、同時実行性の問題を処理する方法を紹介します。 サーバーがサムネイルを生成するタイミングは、大きく次の 2 種類に分けられます。 ​ 1. ファイルのアップロード時に生成される ​ メリット:アップロード時に必要なサムネイルが生成されており、読み込み時に判断する必要がないため、CPU負荷が軽減されます。​ ​ 欠点: サムネイルのサイズが変更されるか、新しいサイズが追加されると、すべてのサムネイルを再生成する必要があります。​ ​ 2. アクセス時に発生する ​ 利点: 1. ユーザーがアクセスした場合にのみ生成する必要があるため、アクセスがない場合は生成する必要がなく、スペースを節約できます。​ ​ 2. サムネイルのサイズを変更する場合、すべてのサムネイルを再生成することなく、設定を変更するだけで済みます。​ ​ 短所: サムネイルが存在せず、サムネイルを生成する必要がある場合、同時アクセスが多くなるとサーバー リソースが大量に消費されます。​ ​ アクセス時に同時実行性が高い問題が発生しますが、同時実行性が高い問題が解決される限り、他の利点は最初の方法よりも優れています。​ ​ URLに基​​づいてサムネイルを自動生成する原理と実装については、以前書いた「phpがURLに基​​づいてサムネイルを自動生成する」を参照してください。​ ​ 高度な同時処理の原則: ​ 1. ピクチャを生成する必要があると判断した場合は、tmp/ ディレクトリに md5 (生成するファイル名) という名前の一時マーク ファイルを作成し、処理が終了すると一時ファイルは削除されます。完成しました。​ ​ 2. 生成されるファイルの tmp/ ディレクトリに一時マーク ファイルがあると判断された場合 (ファイルが処理中であることを意味します)、サムネイル生成メソッドは呼び出されず、一時マーク ファイルが作成されるまで待機します。削除され、成功した出力が生成されます。​ ​ 変更したファイルは以下の通りで、他は以前と同じです。​ ​ createthumb.php コードは以下のように表示されます: $wait_timeout){ // タイムアウト 出口(); } usleep(300000); // 300 ミリ秒スリープします } ​ if(file_exists($dest)){ // 画像は正常に生成されました ob_clean(); header('content-type:'.mime_content_type($dest)); exit(file_get_contents($dest)); }それ以外{ exit(); // 生成に失​​敗した場合は終了します。 } } ​ //サムネイルを作成 $obj = 新しい PicThumb($logfile); $obj->set_config($config); $create_flag = $obj->create_thumb($source, $dest); ​ unlink($processing_flag); // 処理フラグファイルを削除します。 ​ if($create_flag){ // 生成が成功したかどうかを判断します ob_clean(); header('content-type:'.mime_content_type($dest)); exit(file_get_contents($dest)); } ​ ?>

http://www.bkjia.com/PHPjc/727563.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/727563.html技術記事サーバーがサムネイルを生成するタイミングは、大きく分けてファイルアップロード時とアクセス時との2種類に分けられます。URLに基​​づいてサムネイルを自動生成し、同時実行性の問題に対処するphpのサービスを紹介します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。