通过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;
答案 0 :(得分:4)
您需要使用网页抓取技术。只需使用HTML DOM Library
或Node.js
和jQuery
等技术即可完成此操作。您可以找到一些有关此here和here.
您可能还会看到thread有关使用PHP
答案 1 :(得分:3)
最有效的方法是:
$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。
你也可以使用其中一个preg函数在一行中完成它,但我喜欢老式的方法,它的速度要快一纳秒。
答案 2 :(得分:0)
我认为您实际上可以使用file_get_contents("http://store.domain.com/1/");
来执行http请求。
就解析而言,取决于您的项目有多大以及您愿意花多少精力,您可以找到像http://simplehtmldom.sourceforge.net/这样的html DOM解析器,或者只是搜索id="ctl00_ContentPlaceHolder1_phstats1_pname"
并逐一分开(不是推荐的做事方式)。
答案 3 :(得分:0)
可以通过CURL完成。但您可以在项目中包含Simple HTML DOM Parser。它非常易于使用,并将满足您的需求。