Home > Backend Development > PHP Tutorial > 抓取網頁資料怎么存入mysql資料庫

抓取網頁資料怎么存入mysql資料庫

WBOY
Release: 2016-06-13 11:12:47
Original
1195 people have browsed it

抓取網頁資料如何存入mysql資料庫
請問以下的Code有沒有什麼問題呢??
主要是要抓取table內指數的資料,
表是stock(內無資料),
程序執行後stock表內仍是空白,
連接資料庫是沒問題的,
請幫忙協助修改為正確的代碼,
謝謝!!

$contents = file_get_contents('http://www.indexq.org');
preg_match_all('/

/iUs', $contents, $match);
mysql_connect("localhost", "root", "root") or die("無法連結主機");
mysql_select_db("testdb") or die("無法連結資料庫");
mysql_query("SET NAMES utf8");
$SQL = "INSERT INTO stock VALUES('{$match}')";
mysql_query($SQL);
mysql insert
------解决方案--------------------
$match应该是个数组类型,而你的 $SQL = "INSERT INTO stock VALUES('{$match}')";
把它当成了字符串类型。
鉴于你的匹配模式 s ,[\s\S]* 和 .* 表达的是一个意思,且 .* 效率会高一点
<br />preg_match_all('/<table class="marketdatatable"(.*)<\/table>/iUs', $contents, $match);<br />// ...<br />$SQL = "INSERT INTO stock VALUES('{$match[1]}')";<br />mysql_query($SQL) or die(mysql_error());
Copy after login

------解决方案--------------------
引用:
$match应该是个数组类型,而你的 $SQL = "INSERT INTO stock VALUES('{$match}')";
把它当成了字符串类型。
鉴于你的匹配模式 s ,[\s\S]* 和 .* 表达的是一个意思,且 .* 效率会高一点
PHP code?1234preg_match_all('/

还有个最关键的地方忘了说了,你的stock表有哪些字段,不可能就这一个字段还把主键兼了。
你要给哪个字段写入抓取的内容?这个需要在SQL语句写清楚。
------解决方案--------------------
引用:
引用:引用:还有个最关键的地方忘了说了,你的stock表有哪些字段,不可能就这一个字段还把主键兼了。
你要给哪个字段写入抓取的内容?这个需要在SQL语句写清楚。……

對,現在問題是在於stock內欄位該如何設定才算是正確的對應到$match上的資料,
若需要完整的表格資料,$match[1]……
我没看到你用的是 preg_match_all
这样 $match将会至少是个二维数组,即$match[1]会包含很多项。
你可以把这些用 implode连接成一个字符串
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template