【发布时间】:2020-03-26 16:44:36
【问题描述】:
我正在尝试通过 post 和 scrape 该 HTML 页面的标题接收某个 url。然后,我会将页面的标题存储到我的 MySQL 数据库中。
在将这个功能应用到我的实际在线服务器之前,我在本地服务器上测试了 page_title 函数(它是读取给定 URL 的 HTML 页面标题的自定义函数),它运行良好。这是我在本地服务器上使用的代码。
<?php
$link = $_POST['link'];
function page_title($url) {
$fp = file_get_contents($url);
if (!$fp)
return null;
$res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
if (!$res)
return null;
// Clean up title: remove EOL's and excessive whitespace.
$title = preg_replace('/\s+/', ' ', $title_matches[1]);
$title = trim($title);
return $title;
}
$title= page_title($link);
echo $title; ?>
但是,当我在在线服务器上使用完全相同的代码将数据实际推送到 MYSQL 数据库时,该函数似乎返回 nothing 而是一个空字符串。结果,每当我检查我的 php myadmin 时,“标题”列上都没有出现任何内容。谁能告诉我我能做些什么来完成这项工作?谢谢!
【问题讨论】:
-
您是否要抓取启用 SSL 的网站?
标签: php mysql post html-parsing file-get-contents