【问题标题】:Displaying a links absolute location显示链接绝对位置
【发布时间】:2011-03-14 17:54:55
【问题描述】:

当我只相​​对引用它时,有什么方法可以绝对显示链接位置。

即一个文件是相对引用的...

<a href='../../files/uploaded_file.jpg'>Your Uploaded File</a>

但我还想显示一些文字说...

You can link to your file via www.example.com/files/uploaded_file.jpg

我不想明确说明域是什么,因为脚本将用于各种不同的域,而无需编辑脚本。

基本上,当您将鼠标悬停在链接上时,我想以某种方式回显您在 Firefox 状态栏中看到的文本。

【问题讨论】:

    标签: php html directory hyperlink filenames


    【解决方案1】:

    做一个:

    var_dump($_SERVER);

    然后您会看到您可以将哪个作为域 url。

    【讨论】:

      【解决方案2】:
      <a href="<?php echo 'http://'.$_SERVER['HTTP_HOST'] . '/files/uploaded_file.jpg'; ?>">Your file</a>
      

      【讨论】:

        【解决方案3】:

        假设包含示例代码的页面是距站点根目录较深的两个目录,例如

        http://www.example.com/one/two/example-page.php
        

        那么你可以这样做:

        <a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'], ENT_QUOTES)?>/files/uploaded_file.jpg'>Your Uploaded File</a>
        

        如果该假设是错误的并且文件存储在一个目录中,该目录至少比根目录深一个目录,例如

        http: //www.example.com/content/files/uploaded_file.jpg
        

        那么你必须做更多的工作才能获得绝对网址。

        <?php
        $FilesystemPath = str_replace("\\", "/", realpath(dirname(__FILE__) . "/../../files/")) . "/uploaded_file.jpg";
        $DocRoot = $_SERVER['DOCUMENT_ROOT'];
        $Uri = str_replace($DocRoot, '', $FilesystemPath);
        ?>
        <a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'] . $Uri, ENT_QUOTES)?>'>Your Uploaded File</a>
        

        此示例假定您知道 files 目录位于页面目录上方两个目录的目录中。

        所有这些示例都假设文件系统上的目录是一对一的映射,并且没有进行 url 重写。另外,我假设您只使用普通的 http 而不是 https。如果您想在与提供页面的协议相同的协议中显示链接,那么这是一个单独的问题。

        【讨论】:

          【解决方案4】:

          【讨论】:

            【解决方案5】:

            如果一个链接是相对的,你可以在它前面加上 PHP 中的当前主机 + 路径。你必须格式化路径来解析像/../这样的相对url部分,一个简单的循环就可以做到这一点。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-12-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多