一键远程获取网站信息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"。这样做的目的可能是为了去除掉一些无用的字符串,以便后续处理。

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/2050
0 评论
480

发表评论

!