【问题标题】:How to retrieve a URL string from a parameter value in PHP如何从 PHP 中的参数值中检索 URL 字符串
【发布时间】:2013-12-04 11:04:54
【问题描述】:

我正在编写一个“管道”来重命名和删除 iCal 提要的部分内容。我希望脚本将不同的提要 URL 作为输入。

它的源参数值包含参数分隔符,参数如下所示:

?source=https://web.timeedit.se/hig_no/db1/timeedit/p/open/r.ics?sid=3&p=20130819.x%2C20131130.x&objects=160812.183&ox=0&types=0&fe=0&pp=f

这是我的代码的摘录:

<?php $params = $_GET;
$content = file_get_contents($params['source']);
// ...

但这不起作用,因为 $_GET 的 print_r 看起来像这样:

Array
(
    [source] => http://www.example.com/?source=https://web.timeedit.se/hig_no/db1/timeedit/p/open/r.ics?sid=3
    [p] => 20130819.x,20131130.x
    [objects] => 160812.183
    [ox] => 0
    [types] => 0
    [fe] => 0
    [pp] => f
)

如何获取完整的 URL 而不仅仅是 [source] 值?或者,是否有更好的方法来检索 URL?最好是我可以将 URL 粘贴到参数中的一种。

【问题讨论】:

    标签: php url get url-parameters


    【解决方案1】:

    使用 $_SERVER。

       function saveUrl() {
    
           $pageURL = $_SERVER["REQUEST_URI"]; 
    
           $URL=urlencode($pageURL);
    
           return $URL;
       }
          $URL_ENC=saveUrl();
    

    【讨论】:

    • 我在您的答案中添加了 substr 的使用。我希望你没事。如果它不起作用,会通知你。谢谢。
    • 随意编辑它......这个答案意味着在某个方向上的方向而不是作为复制粘贴解决方案。尽管这很简单。很高兴这很有帮助。干杯。
    • 看来我的编辑被拒绝了。这是我为获取 URL 字符串本身而添加的内容:substr($URL, strpos($line, 'https://'));
    【解决方案2】:

    例如,您必须对源代码进行 urlencode

    source=https%3A%2F%2Fweb.timeedit.se%2Fhig_no%2Fdb1%2Ftimeedit%2Fp%2Fopen%2Fr.ics%3Fsid%3D3%26p%3D20130819.x%2C20131130.x%26objects%3D160812.183%26ox%3D0%26types%3D0%26fe%3D0%26pp%3Df%0A
    

    现在您将获得编码格式的完整网址。

    然后像下面这样使用它。

    $url = urldecode($_GET['source']);
    

    这将包含您的完整网址

    【讨论】:

      猜你喜欢
      • 2018-01-26
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多