首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从外部网页获取数据

从外部网页获取数据
EN

Stack Overflow用户
提问于 2011-11-04 12:27:03
回答 4查看 11.3K关注 0票数 2

通过php从外部网站获取内容的最佳方式是什么?

使用php如何打开网页(例如:http://store.domain.com/1/)并扫描其中的数据(即字母C和E)。我应该使用什么php方法?

代码语言:javascript
复制
<span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span>
<span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span>

然后将"C“(找到的字符串)保存到$pname

代码语言:javascript
复制
$_session['pname1'] = $pname1;
$_session['pname2'] = $pname2;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-04 12:52:54

最有效的方法是:

代码语言:javascript
复制
$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');
 }

然后,所有的值都将在计数为$on的$list数组中。

你也可以用一个preg函数在一行中完成,但我喜欢老式的方法,它快了一纳秒。

票数 3
EN

Stack Overflow用户

发布于 2011-11-04 12:43:37

你需要使用网页抓取技术。只需使用HTML DOM Library或使用Node.jsjQuery等技术即可完成。您可以找到有关此herehere.的一些有用的教程

您可能还会看到有关使用PHP实现抓取的thread

票数 4
EN

Stack Overflow用户

发布于 2011-11-04 12:36:39

我认为你实际上可以使用file_get_contents("http://store.domain.com/1/");来做一个http请求。

至于解析它,取决于您的项目有多大以及您愿意付出多大的努力,您可以找到像这里的http://simplehtmldom.sourceforge.net/这样的html DOM解析器,或者简单地搜索id="ctl00_ContentPlaceHolder1_phstats1_pname"并将其一块一块地分解(不是推荐的处理方式)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8004878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档