一键远程获取网站信息php实例教程

一键远程获取网站信息php实例教程,

  1. <?php
  2. $url = $_GET['url'] ?? '';
  3. if (!$url) {
  4. echo json_encode(['error' => 'Invalid URL']);
  5. exit;
  6. }
  7. $contents = '';
  8. $title = '';
  9. $description = '';
  10. try {
  11. $contents = @file_get_contents('https://' . $url);
  12. if (!$contents) {
  13. $contents = @file_get_contents('http://' . $url);
  14. }
  15. if ($contents) {
  16. preg_match("/\&lt;title\&gt;(.*)<\/title\&gt;/i", $contents, $matches);
  17. if (isset($matches[1])) {
  18. $title = trim($matches[1]);
  19. }
  20. preg_match_all("/\&lt;meta\s+[^\&gt;]*name=[\'\"]description[\'\"][^\&gt;]*content=[\'\"]([^\'\"]*)[\'\"][^\&gt;]*\&gt;/i", $contents, $matches);
  21. if (isset($matches[1][0])) {
  22. $description = trim($matches[1][0]);
  23. }
  24. }
  25. if ($title || $description) {
  26. echo json_encode(['title' => $title, 'description' => $description]);
  27. } else {
  28. echo json_encode(['error' => 'No title or description found']);
  29. }
  30. } catch (Exception $e) {
  31. echo json_encode(['error' => $e->getMessage()]);
  32. }

这段代码是一个简单的PHP脚本。该脚本的作用是获取一个 URL 中的页面标题和描述,并以 JSON 格式输出结果。

首先,脚本会读取 GET 请求中传递的 URL,并进行判断。如果 URL 为空,则输出一个错误消息。

之后,脚本会尝试使用 file_get_contents() 函数获取 URL 所指向的页面的内容。由于该页面可能使用了 HTTPS 协议,因此会先尝试使用 HTTPS 协议获取页面内容。如果失败,则使用 HTTP 协议获取。

获取到页面内容后,脚本会使用正则表达式从页面内容中提取出标题和描述信息。其中,获取标题的正则表达式为 /<title>(.*)<\/title>/i,获取描述的正则表达式为 /<meta\s+[^\>]*name=[\'\"]description[\'\"][^\>]*content=[\'\"]([^\'\"]*)[\'\"][^\>]*>/i

最后,如果成功获取到了标题或描述信息,则将其以 JSON 格式输出;否则,输出错误消息。

需要注意的是,由于该脚本使用了 @ 符号,因此在进行文件读取操作时会忽略警告消息。这并不是一个好的编程实践,应该尽可能避免使用 @ 符号。

js如下,不一定需要用到

  1. var urlInput = document.getElementById("url-input");
  2. urlInput.addEventListener("blur", function () {
  3. var url = urlInput.value.trim();
  4. // 如果值以 http:// 或 https:// 开头,或以 / 结尾,则替换为空
  5. if (
  6. url.startsWith("http://") ||
  7. url.startsWith("https://") ||
  8. url.endsWith("/")
  9. ) {
  10. url = url.replace(/^(https?:\/\/)|\/$/g, "");
  11. urlInput.value = url;
  12. }
  13. });

这段代码实现了一个监听input输入框失去焦点事件的功能。当输入框失去焦点时,会获取输入框中的值,并对其进行处理:

如果输入框中的值以 http://https:// 开头,或以 / 结尾,则将这些字符串替换为空。具体地,通过正则表达式 /(^https?:\/\/)|\/$/g ,匹配以 http://https:// 开头或以 / 结尾的子串,并将其替换为空字符串。然后将处理后的值再次赋回到输入框中。

例如,如果输入框中的值为 "http://example.com/",则经过处理后,输入框中的值为 "example.com"。这样做的目的可能是为了去除掉一些无用的字符串,以便后续处理。

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

发表评论

!