一键远程获取网站信息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博客主题,昼夜双版设计,可....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
chenyu
2天前
能不能支持deepseek