【发布时间】:2011-05-22 23:33:42
【问题描述】:
我想知道如何在远程网站上找到一个数字并将其设为变量。
例如,如果我想查找“AMZN”的股票报价,我会使用 curl 或获取页面“http://stock-quotes.com/AMZN”上的内容,使其成为一个名为 $ 的变量字符串内容
现在我有了 $contents,如何找到 AMZN 的报价?我正在考虑使用正则表达式来缩小范围,比如找到“AMZN=35 点”,然后执行另一个函数来删除字符串开头和结尾的“AMZN=”和“点”,这样“剩下的就是 35 英寸了。
人们是这样做的吗?
【问题讨论】:
-
最好的方法是使用 DOM,但是使用 preg_match('#AMZN=(.*) points#',$contents,$match) 进行匹配很容易,但是如果标记发生更改,匹配就会中断,需要查看实际页面
-
为什么不将此作为答案而不是评论发布?
-
@AJ 使用 reg 表达式匹配而不是 DOM 通常以反对票结束
-
它被否决了,因为它非常脆弱。也就是说,SimpleXMl 等人也是如此;他们通常根本不处理格式错误的 HTML。如果您先通过 HTMLPurifier 运行它,然后尝试 SimpleXML,您可能会有更好的运气。 htmlpurifier.org
标签: php curl file-get-contents