我使用代码通过ASIN代码显示从亚马逊到我的网站的平均评价。一切都很完美,但我只想将“4.5”和“étoiles”分开,只显示“4.5”数字(参见例子)。
我怎么能这样做?
{{1}}
顺便问一下,你有解决方案在星星图标中转换“4.5”吗?
答案 0 :(得分:2)
首先,当您想从结构化数据中提取某些内容时,请使用结构而不是直接字符串方法。在您的情况下,使用DOMDocument和DOMXPath类:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTMLFile($url);
$xp = new DOMXPath($dom);
$stars = explode(' ', ltrim($xp->evaluate('string(//span[@class="a-size-base a-color-secondary"])')))[0];
echo $stars;
然后你只需修剪并拆分字符串以提取4.5。
请注意,它也可以使用XPath完成:
$stars = $xp->evaluate('substring-before(normalize-space(//span[@class="a-size-base a-color-secondary"])," ")');