新聞中心
php處理大量數(shù)據(jù)時,運行到一定時間就中斷了,請問如何解決
php處理數(shù)據(jù)時會有一個等待時間,就是所說的超時時間,而且如果使用mysql的話,它也有一個超時時間,運行一串代碼時間如果超過配置文件的時間,會被中斷不運行。第一種你可以修改php配置文件timeout的運行時間,第二你可以分批處理大量數(shù)據(jù),注意是分批處理,就OK了。
創(chuàng)新互聯(lián)主營肅南裕固族自治網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,肅南裕固族自治h5成都微信小程序搭建,肅南裕固族自治網(wǎng)站營銷推廣歡迎肅南裕固族自治等地區(qū)企業(yè)咨詢
php curl 大量數(shù)據(jù)采集
這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據(jù)服務(wù)器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數(shù)可以由js產(chǎn)生并傳遞url,php后臺頁面根據(jù)URL抓頁面。然后ajax通過php,在數(shù)據(jù)庫或者是哪里設(shè)一個標量,標明檢測到哪里。由于前臺的html頁面執(zhí)行多少時候都沒問題,這樣php的內(nèi)存限制和執(zhí)行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過了php限制的內(nèi)存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取后再執(zhí)行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大于30秒的默認執(zhí)行時間。
php curl采集放到服務(wù)器有時可以采到有時采不到
在curl_close($curl);前面加上$error?=?curl_error($curl);
然后打印看看有沒有報錯信息。
另外可以在當前文件最前面加入
ini_set('display_errors','on');
error_reporting(E_ALL);
看看運行有沒有什么錯誤提示。
用php獲取sqlserver的表數(shù)據(jù),讀取一部分就停止讀取了
大概是 ?odbc_exec 的兼容性問題 ?, 我使用 mysqli 局沒有這個現(xiàn)象 ? 以前用adodb ?也處理過 30萬以上的記錄..
?php
require_once('php/json/mysqli_dbset.php');
/*?$valstr="";
for?(?$i=1;$i120000;$i++){
$valstr.="(0,'name".$i."'),";
}
$valstr.="(0,'name120000')";
$sql_str="insert?into?tttt?values?$valstr";
$rs=$mysqli-query($sql_str);
echo??"insert?ok";?*/
$sql_str="select?*?from?tttt";
$rs=$mysqli-query($sql_str);
while($row?=?$rs-fetch_array(MYSQL_ASSOC)){
echo??$row['iname'].'/br';
}
?
文章名稱:php數(shù)據(jù)采集中斷 php采集器
本文來源:http://www.ef60e0e.cn/article/ddihejj.html