首页 > 后端开发 > php教程 > 如何使用 PHP 将相对路径转换为绝对 URL?

如何使用 PHP 将相对路径转换为绝对 URL?

Susan Sarandon
发布: 2024-11-07 11:52:03
原创
223 人浏览过

How to Convert a Relative Path to an Absolute URL Using PHP?

使用 PHP 将相对路径转换为绝对 URL

将相对路径转换为绝对 URL 对于使用基于 Web 的资源至关重要。此任务可以使用 PHP 来完成,PHP 是一种广泛使用的 Web 开发脚本语言。

如何使用 PHP 将相对路径转换为绝对 URL:

至要实现此转换,您可以利用 rel2abs() 函数:

function rel2abs($rel, $base)
{
    /* return if already absolute URL */
    if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;

    /* queries and anchors */
    if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;

    /* parse base URL and convert to local variables:
       $scheme, $host, $path */
    extract(parse_url($base));

    /* remove non-directory element from path */
    $path = preg_replace('#/[^/]*$#', '', $path);

    /* destroy path if relative url points to root */
    if ($rel[0] == '/') $path = '';

    /* dirty absolute URL */
    $abs = "$host$path/$rel";

    /* replace '//' or '/./' or '/foo/../' with '/' */
    $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
    for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}

    /* absolute URL is ready! */
    return $scheme.'://'.$abs;
}
登录后复制

说明:

  1. 检查相对路径是否已经是绝对 URL (包含方案)。
  2. 将查询或锚点与基本 URL 连接。
  3. 将基本 URL 解析为其方案、主机和路径组件。
  4. 转换提供的相对值路径到“脏”绝对 URL。
  5. 迭代地用“/”替换“//”或“/./”或“/foo/../”等模式以清理绝对 URL。
  6. 返回清理后的绝对URL。

用法:

您可以利用此函数将任何相对路径转换为其相应的绝对URL。例如,以下代码片段描述了如何将相对路径转换为绝对 URL:

$rel_path = "images/profile.jpg";
$base_url = "https://example.com/";

$abs_url = rel2abs($rel_path, $base_url); // Output: "https://example.com/images/profile.jpg"
登录后复制

以上是如何使用 PHP 将相对路径转换为绝对 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板