検索
ホームページバックエンド開発PHPチュートリアルPHP のインポートとエクスポートに進行状況バーを表示するにはどうすればよいですか? ?

ユーザーフレンドリーにするために、プロンプトが表示されたときに進行状況をオフラインプログレスバーで表示したいのですが、方法がわかりません。
私のインポートは、ファイルを csv 形式でインポートし、それを直接読み取り、データテーブルに挿入することです。 エクスポートも、直接クエリを実行して csv 形式のファイルを生成します。
進行状況バーを作成することはできます。インポートとエクスポートの実行の進行状況を取得し、ajax と js を使用して進行状況バーを更新する方法がわかりません。


ディスカッションに返信 (解決策)

sliverlight、flash、html5 を介したクライアント サポート

またはサーバー側で、apc 拡張機能を確認します。あるようですが、名前を忘れました

これはajaxの使い方は簡単です 実装するには、関連情報を確認できます

100の操作がある場合、最初の操作を1ずつ進め、2番目の操作を3ずつ進めることができます...

この進行状況バーの効果は行わないことをお勧めします速度に影響する可能性があるため

「インポート」を行うだけです

キャッシュされた出力を使用します

// 省略其他html+js进度条代码$i = 0;while($i<100) {    // 执行内容    sleep(1);    // 根据总量和当前任务计算任务进度$i    $i = $i++;    echo '<script>进度条变更js到'.$i.'</script>';    ob_flash()    flash();}

<?php// 进度条演示代码,页面输出ob_start();header('Content-Type: text/html;charset=utf-8');echo '当前任务进度:<span id="p">0%</span>';echo str_repeat(' ', 4096);ob_flush();flush();// 执行任务$i = 0;while($i<100) {	    // 执行内容    sleep(1);    // 根据总量和当前任务计算任务进度$i    $i++;    echo '<script type="text/javascript">document.getElementById(\'p\').innerHTML = "'.$i.'%";</script>';    ob_flush();    flush();}

以前にコレクションを実行していたときにこれを書きましたが、Chrome で試してみました。進捗状況は実行されません

http://devp.cosrc.com/scroll2.php

非常に優れており、非常に強力です>>>

PHP コード

// 他の HTML は省略します+js 進行状況バーコード
$i = 0;
while( $ i & lt; 100) {
// コンテンツを実行
sleep (1)
// 合計金額と現在のタスク $ i に基づいてタスクの進行状況を計算します
$ i ++;
echo '& lt; script & gt; ''
ob_flash()
flash(); キーそれは、このステップ「// 合計金額と現在のタスク $i に基づいてタスクの進行状況を計算する」のやり方がわからないということです
このステップのやり方を知りたいのですが?
6階のhnxxwyqさんからの返信を引用:
PHPコード
// 他のhtml+jsプログレスバーコードを省略

$i = 0;

while($i // 実行内容
sleep(1) );
// 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算します
$i = $i++;
echo '<script>進行状況バーの js を '.$i.'</script>> ;';
ob_flash()
flash();
}

……

通常、この種の進行状況バーは次のように行われます
まず全体的なタスクを取得し、次にそれを 1 つの次元で定量化し、次に現在の進行状況を取得しますいつでも全体で割って四捨五入してください

たとえば、ファイル内に読み取る行が x 行あり、各行の内容はサイズが異なりますが、全体の進捗状況と見なすことができます。各行を計算した後の完了の 1/x

次に、各行を処理したい場合は、クエリを実行して出力を生成する必要があり、インポート メソッドは各ステップを定量化できる必要があります

たとえば。 ,
$file_size=ファイル内のデータ行数;
$current=0; //最初の行、start
while (未完了)
$current++ を出力します。 * 100; //Continue
}

明らかに、これは段階的に処理する必要があります。ファイルを直接インポートおよびエクスポートするために既製の関数を使用する場合、中間の実行は行われません。








6 階の hnxxwyq からの返信を引用:
PHP コード
// 他の html+ js プログレスバーコードを省略
$i = 0;
while($i // 実行内容
sleep(1);
// 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算

$i = $i++ ;

echo '<script>進行状況バー js を '.$ に変更しますi.'</script>';
ob_flash()
flash(); }

……

インポートするとき、csv の合計行数は n で、m 行が読み取られると計算できます。固定時間 (効率に応じて変更可能)、m 行が処理されるたびに、最終的な進行率は、floor(i*m / n) * 100 になります。

10階のwxhbbddの返信から引用:

6階のhnxxwyqの返信から引用:
PHPコード
// 他のhtml+jsプログレスバーコードを省略
$i = 0;
while($i // コンテンツを実行
sleep(1);
// 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算します
$i = $i++;
echo '<script>進行状況バー js を '.$i' に変更します。 </script>> ;';
ob...


$n = '総タスク量';
$m = 'バッチタスク実行量'; ($i * $m }

APC 実装方法:

APC をインストールします。インストールについては公式ドキュメントを参照してください。PECL モジュールのインストール方法を使用すると、ここでは説明されていませんが、迅速かつ簡単に行うことができます
php.ini を設定し、パラメーター apc.rfc1867=1 を設定します。 APC がアップロード プログレス バー機能をサポートしていることについては、APC ソース コードのドキュメントに説明があります
コード例:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //アップロード リクエスト
$status = apc_fetch( 'upload_' . $_POST['APC_UPLOAD_PROGRESS']) ;
$status['done'] = 1; // クライアントページの ajax 呼び出しに出力します。関連するドキュメントを自分で見つけてください。 exit;
} elseif (isset($_GET[' progress_key'])) { //アップロードの進行状況を読み取ります
$status = apc_fetch('upload_'.$_GET['progress_key']);
echo json_encode($status);
exit;
} else {
//アップロードフォームなどのその他のコード
}

Uploadprogress モジュールの実装方法:
PECL モジュールのインストール方法を使用してモジュールをインストールする
Set Uploadprogress.file.filename_template = “/ php.ini の tmp/upd_%s.txt”
コード例:
if($_SERVER['REQUEST_METHOD']=='POST') {
if (is_uploaded_file($_FILES['upfile']['tmp_name'] ){$ upload_dir = 'your_path/'; ; ;
アップロードに失敗しました
} else {
//アップロード エラー
} Elseif (! Empty ($ _ get ['sessid'])) {
header ("expires: mon, 26 jul 1997: 00 グラム」); ( "D, d M Y H:i:s") . " GMT");
header("キャッシュ制御: ストアなし、キャッシュなし、再検証する必要があります"); =0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type:text/html;charset=UTF-8");

$unique_id = $_GET['sessid'];
$uploadvalues = updateprogress_get_info($unique_id)
if (is_array($uploadvalues)) {
echo json_encode($uploadvalues); // 進行状況の読み取りが失敗しました。追加の処理ロジック
}

} else {
//アップロードフォームを表示
}

コレクション 名前を残してください~~~

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
11ベストPHP URLショートナースクリプト(無料およびプレミアム)11ベストPHP URLショートナースクリプト(無料およびプレミアム)Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Instagram APIの紹介Instagram APIの紹介Mar 02, 2025 am 09:32 AM

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、ReactLaravelのバックエンドでReactアプリを構築する:パート2、ReactMar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表2025 PHP状況調査の発表Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境