Php 从外部网页获取数据

Php 从外部网页获取数据,php,Php,通过php从外部网站获取内容的最佳方式是什么 使用php如何进入网页(例如:)并扫描HTML编码以查找介于两者之间的数据(即字母C和E)。我使用什么php方法 <span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span> <span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span> 我认为你实际上可以使用文件获取内容(“http

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

使用php如何进入网页(例如:)并扫描HTML编码以查找介于两者之间的数据(即字母C和E)。我使用什么php方法

<span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span>
<span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span>

我认为你实际上可以使用
文件获取内容(“http://store.domain.com/1/");
执行http请求


至于解析它,取决于您的项目有多大以及您愿意付出多大的努力,您可以在这里找到一个html DOM解析器,或者只需搜索
id=“ctl00\u contentplaceholder 1\u phstats1\u pname”
并将其逐个分解(这不是推荐的做法).

您需要使用网页抓取技术。只需使用
HTMLDOM库
或使用
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


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

可以通过CURL完成。但是您可以只在项目中包含简单的HTMLDOM解析器。它使用起来非常简单,可以满足您的需要


文件在这里

这叫做屏幕抓取,以前在这个网站上被问过/回答过很多次:应该是$pos=str_pos($content')?最好的方法是单独进行,而不是将所有数据分组到一个列表数组中。不,应该按原样进行,否则只能得到一个结果。最好将它们放入一个数组中,然后使用for($run=0;$run)单独处理它们
$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');
 }