我正在使用 LAMP 构建开发一个社交媒体平台。到目前为止,我的用户可以上传图片和视频,并对它们进行评论和投票。我希望用户能够发布文章的 url 链接,并像在 Facebook 上一样自动弹出标题、图像和描述。我猜大多数包含文章的网页都包含某种元数据,这些元数据可以让像我这样的开发人员系统地访问标题、描述字段等。如果是这种情况,那么我如何具体访问这些元数据。否则,Facebook 是如何做到的?
谢谢,
您可以使用 PHP HTML 解析库,该库允许您输入 URL,并根据您的选择分解元信息。
StackOverflow 上的这个答案有一个很好的 PHP 可用 HTML 解析选项列表:https ://stackoverflow.com/a/3577662/1332068
这会从您输入的任何有效 url 中刮掉所有图像:
<?php
if(isset($_POST['link'])){
$link = $_POST['link'];
$scrapings = "";
$article = new DOMDocument;
$article ->loadHTMLFile($link);
$titles = $article->getElementsByTagName("title");
foreach($titles as $title){
echo $title->nodeValue, PHP_EOL;
}
$images = $article->getElementsByTagName("img");
foreach($images as $image){
$source = $image->getAttribute("src");
$scrapings .= '<img src="'.$source.'" alt="default">';
}
}
?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<form method="POST" action="article_system.php">
<input type="text" name="link">
<input type="submit" value="submit">
</form>
<?php echo $scrapings; ?>
</body>
</html>