你用網(wǎng)頁的方式,讓人點(diǎn)擊,服務(wù)器采集,簡直是弱爆了。每個(gè)人的點(diǎn)擊循環(huán)1000次,來個(gè)100人同時(shí)點(diǎn),你要用的是普通的虛擬機(jī)就不行了。
和碩網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,和碩網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為和碩超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的和碩做網(wǎng)站的公司定做!
最好是換種方式實(shí)現(xiàn),不要通過網(wǎng)頁進(jìn)行采集。
可以非常簡單的在數(shù)據(jù)庫的表,創(chuàng)建一個(gè)采集隊(duì)列,后臺(tái)執(zhí)行一個(gè)crontab的計(jì)劃任務(wù),去完成隊(duì)列里的采集任務(wù)。
方法1: 用file_get_contents 以get方式獲取內(nèi)容
[php] view plaincopyprint?
?php
$url='';
$html = file_get_contents($url);
echo $html;
?
方法2: 用fopen打開url, 以get方式獲取內(nèi)容
[php] view plaincopyprint?
?php
$fp = fopen($url, 'r');
//返回請(qǐng)求流信息(數(shù)組:請(qǐng)求狀態(tài),阻塞,返回值是否為空,返回值http頭等)
[php] view plaincopyprint?
stream_get_meta_data($fp);
[php] view plaincopyprint?
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
?
foreach 語法結(jié)構(gòu)提供了遍歷數(shù)組的簡單方式。foreach 僅能夠應(yīng)用于數(shù)組和對(duì)象,如果嘗試應(yīng)用于其他數(shù)據(jù)類型的變量,或者未初始化的變量將發(fā)出錯(cuò)誤信息。有兩種語法:
foreach
(array_expression
as
$value)
statement
foreach
(array_expression
as
$key
=
$value)
statement
第一種格式遍歷給定的 array_expression 數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給 $value 并且數(shù)組內(nèi)部的指針向前移一步(因此下一次循環(huán)中將會(huì)得到下一個(gè)單元)。
第二種格式做同樣的事,只除了當(dāng)前單元的鍵名也會(huì)在每次循環(huán)中被賦給變量 $key。
范例:
$a = array( "one" = 1, "two" = 2, "three" = 3, "seventeen" = 17);foreach ($a as $k = $v) { echo "\$a[$k] = $v.\n";}
。。。。。。
這個(gè)函數(shù)???令人很迷惑
它的邏輯是什么呢?為什么是先判斷 $this-error,而不是query后再判斷呢?
還有以下一句;
return odbc_exec($this-link,$sql) or $this-display_error($sql);
目的是想如果odbc_exec 成功則返回結(jié)果集,否則就輸出錯(cuò)誤嗎?但事實(shí)上是不對(duì)的。等價(jià)于以下:
return (odbc_exec($this-link,$sql) or $this-display_error($sql));
顯然,每次都display_error了,不管是否成功
這是函數(shù)odbc_fetch_row的定義:
odbc_fetch_row
(PHP 4, PHP 5)
odbc_fetch_row — Fetch a row
Description
bool odbc_fetch_row ( resource $result_id [, int $row_number] )
If odbc_fetch_row() was successful (there was a row), TRUE is returned. If there are no more rows, FALSE is returned.
odbc_fetch_row() fetches a row of the data that was returned by odbc_do() / odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().
If row_number is not specified, odbc_fetch_row() will try to fetch the next row in the result set. Calls to odbc_fetch_row() with and without row_number can be mixed.
To step through the result more than once, you can call odbc_fetch_row() with row_number 1, and then continue doing odbc_fetch_row() without row_number to review the result. If a driver doesn't support fetching rows by number, the row_number parameter is ignored.
可以看到,odbc_fetch_row并不像其它函數(shù)例如mysql_fetch_row那樣返回一個(gè)數(shù)組,而是返回一個(gè)布爾型的變量,然后在用odbc_result獲取指定字段的值。
修改如下:
?
$databasepath="database.mdb";//寫成常量,define('databasepath',"database.mdb");賦值給變量$databasepath=databasepath;
$dbusername="";
$dbpassword="";
$access=new Access($databasepath,$dbusername,$dbpassword,true);
$conn=$access-query("select * from admin");
while (odbc_fetch_row($conn)) {
?
tr
td class="td1"?=odbc_result($conn, "name")?/td
/tr
tr
td class="td1"?=odbc_result($conn, "area")?/td
/tr
?php
}
$access-close();
?
請(qǐng)下載PHP參考手冊(cè)
您好,可參考如下思路,然后結(jié)合自己的業(yè)務(wù)邏輯即可:
?php
//首先鏈接數(shù)據(jù)庫
$conn = mysql_connect('主機(jī)名','數(shù)據(jù)庫登陸用戶名','數(shù)據(jù)庫登陸密碼') or die('鏈接數(shù)據(jù)庫失敗');
//選擇數(shù)據(jù)庫
mysql_select_db( 'test',$conn );
//假設(shè)test數(shù)據(jù)庫中有文章表,article,表有字段 id,title,create_time 那么可采用如下代碼循環(huán)讀出里面數(shù)據(jù)
//進(jìn)行SQL查詢-查詢article中的數(shù)據(jù)并按照id倒序排列
$sql = 'SELECT *FROM article ORDER BY id DESC';
//獲取執(zhí)行結(jié)果
$result = mysql_query( $sql,$conn );
if( !$result ) die( '執(zhí)行SQL語句失敗' );
//循環(huán)讀出結(jié)果集中的數(shù)據(jù)
while( $row = mysql_fetch_assoc( $result ) )
{
//輸出數(shù)據(jù)
echo $row['id'].'--'.$row['title'].'--'.$row['create_time'].'br/';
}
//如果test中有三條數(shù)據(jù),比如下列數(shù)據(jù)
//id title create_time
//1 文章標(biāo)題1 2014/10/31 14:20
//2 文章標(biāo)題2 2014/11/01 15:12
//3 文章標(biāo)題3 2014/11/03 12:10
//那么執(zhí)行代碼后,網(wǎng)頁應(yīng)顯示如下:
//3--文章標(biāo)題3--2014/11/03 12:10
//2--文章標(biāo)題2--2014/11/01 15:12
//1--文章標(biāo)題1--2014/10/31 14:20
?
修改了一下:
?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());//連接你的數(shù)據(jù)庫
mysql_select_db("mydb");//選擇你的數(shù)據(jù)庫
$result = mysql_query("SELECT `name` FROM data_boy WHERE `id`='2' LIMIT 0, 60");//執(zhí)行SQL查詢語句,搜索出60條數(shù)據(jù)
while ($row = mysql_fetch_array($result)) {
echo "姓名:".$row[name]."br";
/*補(bǔ)充一句,此處也可以是:
echo "姓名:".$row[0]."br";此處"mysql_fetch_array"默認(rèn)返回的既有 關(guān)聯(lián)數(shù)組(字段作為鍵名),也有數(shù)字索引數(shù)組*/
}
mysql_free_result($result);//釋放結(jié)果
?
-------------------------------------不知這樣是否對(duì)你有所幫助---------