Extraire une information d’un site (tel qu’un prix)
Pour pouvoir extraire le prix, il faut connaître dans quel division est situé celui-ci dans le code source du code, en effet le but ici est d’extraire cette partie du code pour la placer dans notre variable. C’est pourquoi si le site change d’un jour à l’autre de nom de division ou d’url, cette méthode ne marchera plus et auquel cas il faudra changer les paramètres que nous avons entrées !
Allons donc sur le site de notre fournisseur à la recherche de ce que nous souhaitons extraire !
Comme nous pouvons le voir ici, notre prix est situé entre une span ayant pour nom de class « price ».
L’étape suivante consiste donc à aller extraire ce span et le placer dans une variable que nous pourrons utiliser par la suite.
Pour cela il suffira d’utiliser seulement une ligne de commande, qui dans notre cas ressemblera à :
preg_match("<span class='price'.*span>/", $page, $getPrix);
Un peu difficile à comprendre je le conçois !
Ce qu’il faut comprendre ici, c’est qu’entre nos slash et anti-slashs, nous plaçons les ouvertures des balises contenant notre prix, ensuite nous écrivons la valeur de la class de notre span qui ici est « price », et ensuite l’étoile nous permet de récupérer tout ce qu’il y a dans ce span pour enfin par la suite fermer notre span. À noter qu’il existe des alternatives à preg_match() selon le cas de figure, tel que preg_match_all(), substr() & strpos() etc.
Une fois que nous avons indiqué les informations à extraire, $page correspond à notre ligne précédemment écrite qui nous servait à parcourir notre site, et enfin, $getPrix est la variable dans laquelle sera placé le résultat de notre extraction.
Une fois que vous avez réussi votre extraction, vous pouvez directement afficher votre variable $getPrix. Mais attention ! Bien que votre navigateur ne vous l’indique pas spécialement, en affichant cette variable vous créez aussi le même span que l’autre site ! Cela signifie que si vous souhaitez utiliser ce prix en temps que nombre pour faire des calculs ou le placer dans votre base de données, vous devrez le convertir !