2010-08-28 7 views
0

Je voudrais saisir les prix des produits de newegg. Heres un site exempleBesoin d'obtenir le contenu d'une div de plusieurs sites

http://www.newegg.com/Product/Product.aspx?Item=**N82E16820167027** 

de ce site, je voudrais obtenir le contenu de <div class="grpPricing">, qui contient le prix.

je ne suis pas très habile à faire des codes, donc je cherchais le web pour les codes et l'a utilisé comme exemple pour faire mon propre ... Heres le résultat jusqu'à présent:

function getprice($itemId) { 
    $source=trim("http://www.newegg.com/Product/Product.aspx?Item=".$itemId); 

    preg_match("'<div class=\"grpPricing\">(.*?)</div>'si", $source, $match); 
    if($match) 
     echo "result=".$match[1]; 
} 

$itemId est donnée, C'est comment je peux faire un script qui boucle à travers plusieurs produits newegg et obtient les informations nécessaires

NOTE: il ne me laisse pas publier le code comme il se doit vraiment, ne sais pas pourquoi, peut-être parce que je ne suis pas inscrit ?!

et il y a une autre question que je ne peux pas résoudre ... la sortie du code doit être:

return strip_tags($price); 

simplement parce que plus tard, je qualifierais la fonction avec cette ligne

$price=getprice($row['newegg_productid']); 

Ive a essayé de mon mieux pour expliquer clairement, mais laissez-moi savoir si vous avez du mal à comprendre. Toute aide est très appréciée, merci!

+0

Ce que vous faites est maintenant probablement assez simple pour sortir avec, mais, http://www.codinghorror.com/blog/2009/11/parsing-html -le-cthulhu-way.html. Si vous cherchez à développer ce que vous faites, pensez à quelque chose de mieux adapté que les expressions régulières. –

+0

"Parsing HTML avec regex invoque des âmes corrompues dans le royaume des vivants." Je comprends le point :) n'a pas fonctionné de toute façon, la réponse de shamittomar semble être le chemin à choisir. merci de commenter! – crashtest

Répondre

1

Pour votre Headstart:

<?php 
function get_string_between($string, $start, $end) 
{ 
    $string = " ".$string; 
    $ini = strpos($string,$start); 
    if ($ini == 0) 
     return ""; 
    $ini += strlen($start); 
    $len = strpos($string,$end,$ini) - $ini; 
    return substr($string,$ini,$len); 
} 
$data = file_get_contents("http://www.newegg.com/Product/Product.aspx?Item=N82E16820167027"); 

$pricediv = get_string_between($data, '<div class="grpPricing">', '<div class="grpAction">'); 

$pricetext = strip_tags($pricediv); 

echo $pricetext; 
?> 
+0

ce morceau de code fonctionne très bien seul! mais après un problème vient un autre ... je ne peux pas l'intégrer dans le code que j'ai déjà obtenu ... en raison de la limitation de caractères ive a décidé d'ouvrir une nouvelle question pour ce problème, que vous pouvez trouver ici: http: // stackoverflow .com/questions/3592916/integrating-a-function merci pour votre aide! – crashtest

Questions connexes