$con?=??new?mysqli($address,$username,$password,$database);?
10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有江陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
if?(!$con)
{
die('Could?not?connect:?'?.?mysqli_error());
}
$sql="select?*?from?{$table}";
$result?=?$con?-?query($sql);
$tables=array();
while($rows?=?$result?-?fetch_assoc())
{
$json[]=$rows;
}
echo?json_encode($json);
$result-close();
返回?cái)?shù)據(jù)代碼如下:
如果在php里有echo的值的話,可以用AJAX來接收:
有多個(gè)輸出的話,是不可能指定輸出的
需要把想要輸出的內(nèi)容放到一個(gè)數(shù)組中,然后json_encode一下,在到j(luò)s里循環(huán),找到自己想要的值
比如:
//需要輸出的內(nèi)容
echo 'aaa'; echo 'bbb';echo ''ccc;
//合成數(shù)組
$data = array(‘name1’='aaa',‘name2’= 'bbb',‘name2’= 'ccc');
//json_encode
$data =?json_encode($data);
//輸出
echo $data;
js:
$.post('aa.php',‘’,function(mes){
var data = eval('(' + msg + ')');
var name1 = data['name1'];
var name2 = data['name2'];
var name3 = data['name3'];
})
json_encode
(PHP 5 = 5.2.0, PECL json = 1.2.0, PHP 7)
json_encode?—?Returns the JSON representation of a value
網(wǎng)頁鏈接
你如果想讓后臺(tái)以json格式返回?cái)?shù)據(jù),那么php就一定要用標(biāo)準(zhǔn)的json格式來輸出數(shù)據(jù),不要混雜其他無關(guān)數(shù)據(jù)。比如你的“返回的數(shù)據(jù):”這幾個(gè)字就屬于多余數(shù)據(jù),ajax在接收到返回?cái)?shù)據(jù)后就會(huì)轉(zhuǎn)換失敗。所以你的 echo "返回的數(shù)據(jù):"; 應(yīng)該刪掉(如果還有其他類似的輸出語句也要?jiǎng)h掉),確保輸出的數(shù)據(jù)只有 ["jeff-A-01.png","jeff-d-01.png"] 這樣的內(nèi)容。
新建一個(gè)頁面b.php,ajax請求這個(gè)頁面 ,b.php用來文件流來讀取aa.php 里面的文本,然后b.php返回這個(gè)文件流的數(shù)據(jù)
$(document).ready(function(){
$(":button").click(function(){
$.ajax({
url:'b.php',
type:'get',
data: 'do=testname=必優(yōu)博客',
success:function(responseText){
alert(responseText);
$("#aa").html(responseText);
}
});
});
});
b.php
$path = "aa.php"
%php
$file_handle = fopen($path, "r");while (!feof($file_handle)) { $line = fgets($file_handle); echo $line;}
fclose($file_handle);
%
這個(gè)需要配合js,打開一個(gè)html頁面,首先js用ajax請求頁面,返回第一個(gè)頁面信息確定處理完畢(ajax有強(qiáng)制同步功能),ajax再訪問第二個(gè)頁面。(或者根據(jù)服務(wù)器狀況,你可以同時(shí)提交幾個(gè)URL,跑幾個(gè)相同的頁面)
參數(shù)可以由js產(chǎn)生并傳遞url,php后臺(tái)頁面根據(jù)URL抓頁面。然后ajax通過php,在數(shù)據(jù)庫或者是哪里設(shè)一個(gè)標(biāo)量,標(biāo)明檢測到哪里。由于前臺(tái)的html頁面執(zhí)行多少時(shí)候都沒問題,這樣php的內(nèi)存限制和執(zhí)行時(shí)間限制就解決了。
因?yàn)椴粫?huì)浪費(fèi)大量的資源用一個(gè)頁面來跑一個(gè)瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過了php限制的內(nèi)存)
不過印象中curl好像也有強(qiáng)制同步的選項(xiàng),就是等待一個(gè)抓取后再執(zhí)行下一步。但是這個(gè)500次都是用一個(gè)頁面線程處理,也就是說肯定會(huì)遠(yuǎn)遠(yuǎn)大于30秒的默認(rèn)執(zhí)行時(shí)間。