2013-11-20 79 views
0

我在写一个“管道”来重命名和删除iCal提要的某些部分。我希望脚本采用不同的Feed URL作为输入。如何从PHP中的参数值中检索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,而不仅仅是[so urce]的价值?或者,有没有更好的方法来检索URL?最好能将URL粘贴到参数中。

回答

0

使用$ _ SERVER。

function saveUrl() { 

     $pageURL = $_SERVER["REQUEST_URI"]; 

     $URL=urlencode($pageURL); 

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

我在您的答案中添加了substr的用法。我希望你没事。如果它不起作用,会让你知道。谢谢。 –

+0

随意编辑它...这个答案意味着作为一个方向的方向而不是复制粘贴解决方案。尽管它非常简单。很高兴它是有用的。干杯。 – FRECIA

+0

似乎我的编辑被拒绝了。下面是我添加的URL字符串本身: 'substr($ URL,strpos($ line,'https://'));' –

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编码格式。

然后像下面一样使用它。

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

这会对您的完整URL

相关问题