使用php获取HTML标记内容
基本上,我使用php使用php获取HTML标记内容,php,regex,file-get-contents,Php,Regex,File Get Contents,基本上,我使用phpfile\u get\u contents()从URL获取内容 在获取页面源之后,我必须从页面源的这一部分获取数据 <div class="span2 box-product" data-store="kimstore" data-product-id="cpnYKmW6D5" data-product-title="Nokia-900-Lumia"> <a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia
file\u get\u contents()
从URL
获取内容
在获取页面源之后,我必须从页面源的这一部分获取数据
<div class="span2 box-product" data-store="kimstore" data-product-id="cpnYKmW6D5" data-product-title="Nokia-900-Lumia">
<a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300">
<img src="https://m-md.s3.amazonaws.com/storefront/kimstore/media/46/68/2d/99/68159647b67e5b1a2d124f9-120x90" width="120" height="90" title="Nokia 900 Lumia Php 14,300" alt="Nokia 900 Lumia Php 14,300" />
</a>
<p class="title">
<a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300">
Nokia 900 Lumia
</a>
</p>
<p class="price">Php 14,300</p>
<p class="shop">
<a href="/kimstore" title="kimstore">kimstore</a>
</p>
</div>
14300菲律宾比索
因此,我必须使用SimpleXML获取
之间的数据,您可以将属性和DOM作为PHP对象进行访问。将file_get_contents的结果传递给SimpleXML,如下所示:
$str = file_get_contents($url);
$xml = simplexml_load_string($string);
使用DOM扩展(或SimpleXML,如果您解析xhtml文档)
如果文档不是有效的XML,SimpleXML可能会失败
此外,您还应该了解xPath以快速访问任何DOM节点。仅使用您提供的HTML代码,此解决方案就可以工作:
<?php
$html = <<<HTML
<div class="span2 box-product" data-store="kimstore" data-product-id="cpnYKmW6D5" data-product-title="Nokia-900-Lumia">
<a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300">
<img src="https://m-md.s3.amazonaws.com/storefront/kimstore/media/46/68/2d/99/68159647b67e5b1a2d124f9-120x90" width="120" height="90" title="Nokia 900 Lumia Php 14,300" alt="Nokia 900 Lumia Php 14,300" />
</a>
<p class="title">
<a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300">
Nokia 900 Lumia
</a>
</p>
<p class="price">Php 14,300</p>
<p class="shop">
<a href="/kimstore" title="kimstore">kimstore</a>
</p>
</div>
HTML;
$sxe = new SimpleXMLElement($html);
$attributes = $sxe->attributes();
$data_store = trim((string) $attributes['data-store']);
$title = trim((string) $sxe->p[0]->a);
$price = trim((string) $sxe->p[1]);
echo "{$data_store}\n{$title}\n{$price}\n";
attributes();
$data_store=trim((字符串)$attributes['data-store']);
$title=trim((字符串)$sxe->p[0]->a);
$price=trim((字符串)$sxe->p[1]);
echo“{$data\u store}\n{$title}\n{$price}\n”;
我会尝试一下,但告诉您我没有得到xml url,但您试图做的可能是a)侵犯版权和b)错误的方法。可能是的重复,但我必须从整个html中获取数据。此代码片段应该足以让您了解SimpleXML解析的工作原理。只需加载整个HTML并导航到对象中,直到到达所需的块。