このCIプロジェクトはデータベースからCSVに変換されています。処理に時間がかかり、「このページは動作していません.SS-server-ip-address>はデータを送信しませんでした。」ERR_EMPTY_RESPONSE
SSHサーバーにデプロイされています。
すべてのデータをロードしようとしています(2,000,000以上あります)。それをCSVに変換します。
私の最初の試みI(それは66,000+私にデータを提供します。)電子メールのみを持つ行でそれをフィルタリング
それは成功した(少し時間がかかりました)csvファイルにデータをエクスポートしました。
しかし、ときに私は最終的に私はそれはとても多くの時間の負荷がかかりますし、ブラウザがエラーを与える、「CSVに変換」をクリックした後、すべてのデータをエクスポートしよう:
This page isn’t working
<server-ip-address> didn’t send any data.
ERR_EMPTY_RESPONSE
んが、これは重要でする何かを持っていますサーバーとは?
私は、これらの設定と/etc/php.ini
に設定を変更してみました:
max_execution_time = 259200
max_input_time = 259200
memory_limit = 300M
session.gc_maxlifetime = 1440
しかし、それはまだ私に同じエラーを与えます。
どうすれば解決できますか?助けてください。
UPDATE:私はCSVファイルのダウンロードのための私のコードが含まれ、ここにある:
public function convcsv(){
ini_set('memory_limit', '-1');
set_time_limit(0);
$prefKey = $this->session->flashdata('prefKey');
$searchKey = $this->session->flashdata('searchKey');
$withEmail = $this->session->flashdata('withEmail');
log_message('debug', 'CONVCSV prefKey = ' . $prefKey);
log_message('debug', 'CONVCSV searchKey = ' . $searchKey);
$list = $this->user_model->get_users($prefKey, $searchKey, $withEmail, "", "");
log_message('debug', 'Fetched data');
$headerArray = array("id", "prefecture_id", "industry_id", "offset", "name", "email");
// Header
$header = str_replace(",", "", $headerArray);
$datas = implode(',', $header) . "\r\n";
// Body
foreach($list as $body)
{
// 配列の内容を「,」区切りで連結する
$orig_email = $body['email'];
$mstring = preg_replace("/^([^a-zA-Z0-9])*/",',',$orig_email);
preg_match_all("/[\._a-zA-Z0-9-][email protected][\._a-zA-Z0-9-]+/i", $mstring, $matches);
$email = implode($matches[0]);
//$email = $matches[0];
$datas .= $body["id"].",".$body["prefecture_id"].",".$body["industry_id"].",".$body["offset"].",".preg_replace('/[,]/',' ',$body["name"]).",".$email."\r\n";
}
// 文字コード返還
$datas = mb_convert_encoding($datas, "SJIS-win", "UTF-8");
// ダウンロード開始
$csvFileName = "phpList_" . date('Ymd_His') . ".csv";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $csvFileName);
header('Content-Transfer-Encoding: binary');
while (ob_get_level() > 0)
{
ob_end_clean();
}
ob_start();
print trim($datas);
ob_flush();
ob_end_clean();
exit;
}
ブラウザからダウンロードする必要がありますが、ftpはより効率的です。 – nogad
@nogadはオプションではありません。これは、データをcsvに変換するcodeigniterプロジェクトのものです。 –
ファイルを提供していますか?またはデータストリーム?ファイルを圧縮していると考えられますか? – nogad