查找字符串并将其值保存在字符串中
Posted
技术标签:
【中文标题】查找字符串并将其值保存在字符串中【英文标题】:Finding string and saving its value in string 【发布时间】:2014-08-26 13:19:29 【问题描述】:我想通过 URL 查找有关 eBay 中事物的信息。
我试过了,但它不起作用:
<?php
$web = file_get_contents('http://www.ebay.com/itm/7-inch-android-4-2-A13-Capacitive-Touch-Screen-WiFi-Tablet-PC-Front-Camera-8GB/361031774590');
$title = preg_replace('~(.*)<span class="g-hdn">(.*)</span>~','',$web);
$title = preg_replace('~</h1><h2 id="subTitle" class="it-sttl">(.*)~','',$title);
echo $title;
?>
【问题讨论】:
“不工作”是什么意思?我们倾向于在这里说“不工作”是最没有帮助的故障报告!;-)
因此,如果你能说出你的期望,以及你得到的详细信息,那就可以回答了。
您可能需要通过 DOMDocument 处理这个 html - 使用正则表达式处理 HTML 通常比它的价值更麻烦。
(虽然我并不总是同情 eBay 作为一家公司,但值得知道他们过去曾对刮板采取过法律行动。因此,在这个项目上预测您的业务成功可能并不明智,如果是商业企业!)。
你回显的 $price 变量是什么?它从未在任何地方宣布......
【参考方案1】:
或者,您也可以使用(如 halfer 建议的那样)DOMDocument
和 xpath 来获取它们,并且更容易使用它们的 id
来代替。示例:
$url = 'http://www.ebay.com/itm/7-inch-Android-4-2-A13-Capacitive-Touch-Screen-WiFi-Tablet-PC-Front-Camera-8GB/361031774590';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile($url);
libxml_clear_errors();
$xpath = new DOMXPath($dom);
$title = $xpath->query('//h1[@id="itemTitle"]')->item(0)->lastChild->nodeValue;
$description = $xpath->query('//h2[@id="subTitle"]')->item(0)->nodeValue;
echo $title . '<br/>';
echo $description;
【讨论】:
谢谢你的帮助,它工作正常 :) 但我不能 +1 你,因为我需要它的声誉:(【参考方案2】:我认为更好的方法是从 URL 中提取商品编号,然后对 eBay 进行 API 调用以检索商品信息。 (eBay API 可免费注册,您可以立即开始使用。)
从 URL 中提取 item# 的一种快速简便的方法是提取前 10-13 位数字。会有一些罕见的边缘情况不起作用(例如项目标题中的长部件号),但我不会担心。
除了 API,您还可以考虑使用 eBay 的 RSS 提要来检索您想要的数据。
【讨论】:
以上是关于查找字符串并将其值保存在字符串中的主要内容,如果未能解决你的问题,请参考以下文章
java指定文件夹下查找固定的字符串并将其所在的文件名,行数,该行全部内容写入txt文件中(具体实例)