通过php从外部网站获取内容的最佳方式是什么?
使用php我如何去网页(例如:http://store.domain.com/1/)和扫描HTML编码之间的数据(这是字母C和E)。我使用什么php方法?
<span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span>
<span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span>
然后保存"C"(找到的字符串)到$pname
$_session['pname1'] = $pname1;
$_session['pname2'] = $pname2;
你需要使用网页抓取技术。它可以简单地通过使用HTML DOM Library
或Node.js
和jQuery
等技术来完成。你可以在这里和这里找到一些有用的教程。
你也可以看到这个线程关于实现抓取使用PHP
最有效的方法是:
$content = file_get_contents('http://www.domain.com/whatever.html');
$pos = str_pos($content,'id="c');
$on=0;
while($pos!==false)
{
$content = substr($content,$pos+4);
$pos = str_pos($content,'"');
$list[$on] = substr($content,0,$pos);
$on++;
$pos = str_pos($content,'id="c');
}
那么你的所有值都将在$list数组中,该数组的计数为$on。
你也可以用一个妊娠函数在一行中完成它,但我喜欢老派的方法,它快了毫微秒。
我认为你实际上可以使用file_get_contents("http://store.domain.com/1/");
做一个http请求。
至于解析它,取决于你的项目有多大,你愿意付出多大的努力,你可以找到一个html DOM解析器,像这里http://simplehtmldom.sourceforge.net/或简单地搜索id="ctl00_ContentPlaceHolder1_phstats1_pname"
,并把它一块一块地拆开(不是推荐的做事方式)。
可以通过CURL完成。但是您可以在项目中包含简单HTML DOM解析器。它非常容易使用,将满足您的目的。
文档在这里。http://simplehtmldom.sourceforge.net/