【问题标题】:getting full URL in php without white spaces在没有空格的php中获取完整的URL
【发布时间】:2020-02-05 05:45:03
【问题描述】:

我正在尝试使用移动浏览器将我网站的完整 URL 分享到 whatsapp, 我试过这个来检索完整的 URL,当我回显变量时它工作得很好,但是当我使用移动浏览器共享时,它给了我这样的空白链接:http://127.0.0.1/?id=40 打不开,怎么才能得到没有空格的完整回显链接?

   <?php
    $alink= (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ?

            "https" : "http") . "://" . $_SERVER['HTTP_HOST'] .

        $_SERVER['REQUEST_URI'];
    ?>
    

//To Share
    <a href="whatsapp://send?text=<?php echo $message['title'] ?> <?php echo "\r\n" ?> <?php echo $alink ?> <?php echo "\r\n" ?> <?php echo $myText ?>"
                           data-action="share/whatsapp/share">Share To Whatsapp</a>

【问题讨论】:

  • 您在此处将参数放入 URL 上下文中,但您忽略了应用正确的 URL 编码。

标签: javascript php html hyperlink share


【解决方案1】:

$alink = str_replace(' ', '', $alink)

Manual

【讨论】:

    【解决方案2】:

    标准条件 [$_SERVER['HTTPS'] == 'on'] 不适用于负载平衡器后面的服务器:

    $isSecure = false;
        if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
            $isSecure = true;
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
            $isSecure = true;
        }
        $REQUEST_PROTOCOL = $isSecure ? 'https' : 'http';
    
        echo $REQUEST_PROTOCOL."://".$_SERVER['HTTP_HOST'];
    

    我认为这会对您有所帮助,请参阅 PHP 文档

    【讨论】:

      【解决方案3】:

      使用window.location.href通过javascript获取完整的url 我的file.php

      ...
      <div id="url"></div>
      ...
      <script type="text/javascript">
         document.querySelector('#url').innertHTML = window.location.href
      </script>
      

      【讨论】:

        猜你喜欢
        • 2011-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 1970-01-01
        • 2016-06-27
        相关资源
        最近更新 更多