通过PHP从网页获取文本

通过PHP从网页获取文本,php,Php,我试图从某个URL获取文本,该文本位于两个文本之间。 例如: <td >Item number:</td><td >**GX12033111**</td></tr> 项目编号:*GX12033111** 我需要得到GX12033111的部件 我试过这个: <?php $file_string = file_get_contents('LINK GOES HERE'); preg_match('/<td >Item

我试图从某个URL获取文本,该文本位于两个文本之间。 例如:

<td >Item number:</td><td >**GX12033111**</td></tr>
项目编号:*GX12033111**
我需要得到GX12033111的部件

我试过这个:

<?php
$file_string = file_get_contents('LINK GOES HERE');
preg_match('/<td >Item number:</td><td >(.*)<\/td><\/tr>/i', $file_string, $title);
$title_out = $title[1];
echo $title_out ;
?>

但它不起作用。

尝试使用:

preg_match('@<td >Item number:</td><td >([^<]+)</td></tr>@i', $file_string, $title);
preg_match('@项目编号:([^尝试使用:

preg_match('@<td >Item number:</td><td >([^<]+)</td></tr>@i', $file_string, $title);

preg_match('@Item number:([^您需要使用PHP的DOM文档


有了它,您就可以
DOM::loadHTML(file_get_contents(“URL”);
,然后您就可以
DOM::getElementsByTagName(“td”);

使用PHP的DOM文档


有了它,您可以
DOM::loadHTML(文件获取内容(“URL”);
,然后您可以
DOM::getElementsByTagName(“td”);

不定期使用DOMecpressions@Dagon:有什么例子吗?是的,在这个叫做互联网的新玩意儿上有数百万人,听说过吗?@Dagon:谢谢你分享你的知识。当然,我应该重复一些已经在S.O上发布了几千次的东西,而互联网上有数百万人,因为你懒得做一件简单的事情search.use DOM not regularecpressions@Dagon:有什么例子吗?是的,在这个叫做互联网的新玩意儿上有数百万人,听说过吗?@Dagon:谢谢分享你的知识。当然,我应该重复一些已经在S.O上发布了几千次的东西,而互联网上有数百万人,因为你懒得做一个简单的搜索h、 否决使用正则表达式完美地刮取htmlWorks的投票:)Thanks@Dagon:并不是每个人都按照你的标准行事,这段代码有效,这才是最重要的。@YosefNaser请注意这是个坏主意。@YosefNaser“它有效”和“最佳解决方案”是两件不同的事情。如果在一年内“项目编号”:更改为“项目编号”(无冒号)?或者如果它以其他方式更改了怎么办?使用DOM可以提供更稳定的aproach IMO。是的,它“很好”在这里使用REGEX,通常是不被建议的。我个人尽可能避免使用REGEX,最重要的是因为它很难阅读和理解,如果任何人在任何时候都要接管我的工作,而且他们不是REGEX大师,他们会有问题。这有点像三元悖论。反对使用常规的Rex按此按钮可完美地刮除htmlWorks:)Thanks@Dagon:不是每个人都按照你的标准行事,这段代码有效,这才是最重要的。@YosefNaser请注意这是个坏主意。@YosefNaser“有效”和“最佳解决方案”是两件不同的事情。如果一年内“Item Number:”改为“Item Number”(无冒号),正则表达式有效吗?或者如果它以其他方式发生变化呢?使用DOM可以为您提供更稳定的aproach IMO。但是,是的,它“很好”在这里使用REGEX,通常是不被建议的。我个人尽可能避免使用REGEX,最重要的是因为它很难阅读和理解,如果有人在任何时候接管我的工作,而且他们不是REGEX大师,他们会有问题。这有点像三元悖论。