我想用PHP从this site检索数据并显示它。
我使用PHP中的pregmatch
函数在3个不同的表中检索了所需的值(来自文章名称,价格以及下面的其他值)。还剩下的是,将它们显示在具有两个维度的表格中。
该表应在第一行中包含文章名称和价格。其余行应包含标题后跟其值。
这是我目前的PHP代码:
<?php
$debut="https://www.agriconomie.com";
$txt = file_get_contents('https://www.agriconomie.com/pieces-agricoles/tracteur/attelage---relevage/pc2902'); /*ici c'est pour Lire la page html*/
$results = array();
// $test = preg_match_all('#<a href="(.*?)">#', $txt, $names_array);
$test = preg_match_all('#<a href="(.+)" class="(.+)" title="(.+)"#', $txt, $names_array);
/*recupéré les liens du site en particuliers le text qui se situe entre griffe "" du href*/
for($i = 0; $i < count($names_array[1]); $i++)
{
$j=$i;
$debut="https://www.agriconomie.com".$names_array[1][$i];
$adresse =$debut;
/* echo $adresse ; ?> <br /> <?php */
$page = file_get_contents ($adresse);
/* preg_match_all ('#<h3 class="product-name">(.+)</h3>#', $page, $names_array5); */
preg_match_all ('#(<dd>(.+)</dd>)#', $page, $names_array2);
preg_match_all ('#<span><i class="icon-chevron-right"></i>(.*?)</span>#', $page, $names_array3);
preg_match_all ('#<p class="price" itemprop="price" content="(.*?)">#', $page, $names_array4);
echo "<center>";
echo "<table class='table table-bordered table-striped table-condensed'>";
/*
for($j = 0; $j < count($names_array5[1]); $j++)
{
$NOM = $names_array5[1][$j];
echo 'Nom ='.$NOM ;
}
*/
for($j = 0; $j < count($names_array4[1]); $j++)
{
$price = $names_array4[1][$j];
echo 'Prix ='.$price.'$' ;
}
for($i = 0; $i < count($names_array3[1]); $i++)
{
for($j= 0; $j < count($names_array2[1]); $j++){
$descriptif = $names_array2[1][$i];
}
$intitule = $names_array3[1][$i];
echo "<tr><td>".$intitule." </td> <td> ".$descriptif." </td> </tr> ";
}
}
echo "</table>";
echo "</center>";
?>
答案 0 :(得分:0)
我找到了许多要纠正/整理的东西,所以我几乎完全重写了。
$debut="https://www.agriconomie.com";
$txt = file_get_contents('https://www.agriconomie.com/pieces-agricoles/tracteur/attelage---relevage/pc2902');
if(!preg_match_all('#<a href="([^"]*?)".*?title="([^"]*?)"#',$txt,$desarticles)){exit("Failure @ desarticles");}
foreach($desarticles[1] as $i=>$url_ext){
$page=file_get_contents("https://www.agriconomie.com{$url_ext}"); // https://www.agriconomie.com/clips-ordinaire-de-9x45-le-cent/p207990
if(!preg_match_all('#<p class="price" itemprop="price" content="(.*?)">#',$page,$desprix)){exit("Failure @ desprix ($i)");}
if(!preg_match_all('#<i class="icon-chevron-right"><\/i>(.*?)<\/span>.*?<dd>(.+)<\/dd>#s',$page,$information)){exit("Failure @ information ($i)");}
echo "<center>";
echo "<table class='table table-bordered table-striped table-condensed'>";
echo "<tr>";
echo "<td>{$desarticles[2][$i]}</td>"; // borrow $i from iteration of $desarticles[1]
echo "<td>Prix ={$desprix[1][0]}$</td>"; // Price (only one per loop)
echo "</tr>";
foreach($information[1] as $k=>$info){
echo "<tr>";
echo "<td>{$info}</td>";
echo "<td>{$information[2][$k]}</td>"; // borrow $k from iteration of $information[1]
echo "</tr>";
}
echo "</table>";
echo "</center>";
}
一些更好的观点: