如何从PHP中的参数值检索URL字符串

时间:2013-11-20 12:38:37

标签: php url get url-parameters

我正在编写各种“管道”来重命名和删除部分iCal Feed。我希望脚本将不同的源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粘贴到参数中。

2 个答案:

答案 0 :(得分:0)

你必须对源代码进行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']);

这将有你的完整网址

答案 1 :(得分:0)

使用$ _SERVER。

   function saveUrl() {

       $pageURL = $_SERVER["REQUEST_URI"]; 

       $URL=urlencode($pageURL);

       return $URL;
   }
      $URL_ENC=saveUrl();