使用:http://simplehtmldom.sourceforge.net/
我正在比较不同品牌的几乎相同产品的价格。现在,当我从标签获取信息时,重量已经包含在内,我想摆脱那部分并自己写出重量,因为我将把所有信息放在一张表中。
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Supplementen Prijzenvergelijking</title>
</head>
<body>
<?php
include("simple_html_dom.php");
// DOM object creeëren
$html = new simple_html_dom();
// HTML ophalen
$html->load_file('http://bodyenfitshop.nl/whey-proteine/body-fit-sportsnutrition/whey-perfection');
$wp22kg = $html->find(".r", 2)->innertext;
$wp44kg = $html->find(".r", 4)->innertext;
// Prijs ophalen van B&F Shop Whey Perfection dmv innertext van <td class=r>
echo "Whey Perfection 2270 gram: " . $wp22kg . "<br>";
echo "Whey Perfection 4540 gram: " . $wp44kg . "<br>";
// HTML ophalen
$html->load_file('http://www.xxlnutrition.nl/whey-delicious/xxl-nutrition');
$wd25kg = $html->find('option[value=437]', 0)->innertext;
// Prijs ophalen van XXL Nutrition Whey Delicious dmv <option value=*>
echo "Whey Delicious " . $wd25kg;
?>
</body>
</html>
这是输出:
Whey Perfection 2270 gram: € 32,90
Whey Perfection 4540 gram: € 54,90
Whey Delicious 2500 gram » € 49.95
我想替换“2500克»”,我该怎么办?我已经尝试过str_ireplace和preg_replace但是无法使其工作,输出保持不变。
注意:我是业余爱好者。
答案 0 :(得分:0)
哦,我已经解决了。我不得不在preg_replace()中使用反斜杠;并且必须写出特殊字符“特殊方式”。
<?php
// HTML ophalen
$html->load_file('http://www.xxlnutrition.nl/whey-delicious/xxl-nutrition');
$html = preg_replace('/2500 gram » /', '', $html);
$html = str_get_html($html);
$wd25kg = $html->find('option[value=437]', 0)->innertext;
// Prijs ophalen van XXL Nutrition Whey Delicious dmv <option value=*>
echo "Whey Delicious 2500 gram: " . $wd25kg;
?>