一键远程获取网站信息php实例教程
一键远程获取网站信息php实例教程,
<?php
$url = $_GET['url'] ?? '';
if (!$url) {
echo json_encode(['error' => 'Invalid URL']);
exit;
}
$contents = '';
$title = '';
$description = '';
try {
$contents = @file_get_contents('https://' . $url);
if (!$contents) {
$contents = @file_get_contents('http://' . $url);
}
if ($contents) {
preg_match("/\<title\>(.*)<\/title\>/i", $contents, $matches);
if (isset($matches[1])) {
$title = trim($matches[1]);
}
preg_match_all("/\<meta\s+[^\>]*name=[\'\"]description[\'\"][^\>]*content=[\'\"]([^\'\"]*)[\'\"][^\>]*\>/i", $contents, $matches);
if (isset($matches[1][0])) {
$description = trim($matches[1][0]);
}
}
if ($title || $description) {
echo json_encode(['title' => $title, 'description' => $description]);
} else {
echo json_encode(['error' => 'No title or description found']);
}
} catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
}
这段代码是一个简单的PHP脚本。该脚本的作用是获取一个 URL 中的页面标题和描述,并以 JSON 格式输出结果。
首先,脚本会读取 GET 请求中传递的 URL,并进行判断。如果 URL 为空,则输出一个错误消息。
之后,脚本会尝试使用 file_get_contents()
函数获取 URL 所指向的页面的内容。由于该页面可能使用了 HTTPS 协议,因此会先尝试使用 HTTPS 协议获取页面内容。如果失败,则使用 HTTP 协议获取。
获取到页面内容后,脚本会使用正则表达式从页面内容中提取出标题和描述信息。其中,获取标题的正则表达式为 /<title>(.*)<\/title>/i
,获取描述的正则表达式为 /<meta\s+[^\>]*name=[\'\"]description[\'\"][^\>]*content=[\'\"]([^\'\"]*)[\'\"][^\>]*>/i
。
最后,如果成功获取到了标题或描述信息,则将其以 JSON 格式输出;否则,输出错误消息。
需要注意的是,由于该脚本使用了 @
符号,因此在进行文件读取操作时会忽略警告消息。这并不是一个好的编程实践,应该尽可能避免使用 @
符号。
js如下,不一定需要用到
var urlInput = document.getElementById("url-input");
urlInput.addEventListener("blur", function () {
var url = urlInput.value.trim();
// 如果值以 http:// 或 https:// 开头,或以 / 结尾,则替换为空
if (
url.startsWith("http://") ||
url.startsWith("https://") ||
url.endsWith("/")
) {
url = url.replace(/^(https?:\/\/)|\/$/g, "");
urlInput.value = url;
}
});
这段代码实现了一个监听input输入框失去焦点事件的功能。当输入框失去焦点时,会获取输入框中的值,并对其进行处理:
如果输入框中的值以 http:// 或 https:// 开头,或以 / 结尾,则将这些字符串替换为空。具体地,通过正则表达式 /(^https?:\/\/)|\/$/g
,匹配以 http:// 或 https:// 开头或以 / 结尾的子串,并将其替换为空字符串。然后将处理后的值再次赋回到输入框中。
例如,如果输入框中的值为 "http://example.com/",则经过处理后,输入框中的值为 "example.com"。这样做的目的可能是为了去除掉一些无用的字符串,以便后续处理。
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
尘集杂货铺和官网1t5-cn
11月11日
[已回复]
希望主题和播放器能支持SQLite数据库,AI能多个讯飞星火