Je cherche un moyen de faire un petit aperçu d'une autre page à partir d'une URL donnée par l'utilisateur dans PHP .
J'aimerais récupérer uniquement le titre de la page, une image (comme le logo du site Web) et un peu de texte ou une description, le cas échéant. Existe-t-il un moyen simple de faire cela sans bibliothèques/classes externes? Merci
Jusqu'ici, j'ai essayé d'utiliser la classe DOCDocument, de charger le code HTML et de l'afficher à l'écran, mais je ne pense pas que ce soit la bonne façon de procéder.
Je vous recommande d'envisager simple_html_dom pour cela. Cela rendra les choses très faciles.
Voici un exemple de travail montrant comment extraire le titre et la première image.
<?php
require 'simple_html_dom.php';
$html = file_get_html('http://www.google.com/');
$title = $html->find('title', 0);
$image = $html->find('img', 0);
echo $title->plaintext."<br>\n";
echo $image->src;
?>
Voici un deuxième exemple qui fera la même chose sans une bibliothèque externe. Je dois noter que l'utilisation de regex sur HTML n'est pas une bonne idée.
<?php
$data = file_get_contents('http://www.google.com/');
preg_match('/<title>([^<]+)<\/title>/i', $data, $matches);
$title = $matches[1];
preg_match('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $data, $matches);
$img = $matches[1];
echo $title."<br>\n";
echo $img;
?>
Vous pouvez utiliser SimpleHtmlDom pour cela. et ensuite recherchez les balises title et img ou ce que vous devez faire d'autre.
Vous pouvez utiliser l'une ou l'autre de ces bibliothèques. Comme vous savez que chacun a des avantages et des inconvénients, vous pouvez consulter les notes sur chacun d’entre eux ou prendre le temps de l’essayer et de l’essayer vous-même:
Vous feriez mieux de tous les vérifier et d’utiliser tout le monde dans l’occasion la mieux prévue.