2016-10-07 62 views
0

得到以下字符串:http://example.de/?param=1&param2=http://example2.com/ 我想讓param2 =後面的一切。首先想到的是substr,但它從來沒有給我所有的後面param2 =。無論我如何使用它,它總是返回http://example2.com(最後一個字符缺失)。我衝這個Documentation,但仍然沒有成功。如何不切斷substr的最後一個字符?

我已經嘗試過:

$url = 'http://example.de/?param=1&param2=http://example2.com/'; 

$piece = substr($url, strpos($url, 'param2=') + 7 ,count($url)); //+7 cause of param2= should not be included 
=> h 

$piece = substr($url, strpos($url, 'param2=') + 7 , -count($url)); 
=> http://example2.com 

$piece = substr($url, strpos($url, 'param2=') + 7 , +count($url)); 
=> h 

$piece = substr($url, strpos($url, 'param2=') + 7 , -(count($url)+1)); 
=> http://example2.co 

$piece = substr($url, strpos($url, 'param2=') + 7 , -(count($url)-1)); 
=>  (empty) 

$piece = substr($url, strpos($url, 'param2=') + 7 , -1); 
=> http://example2.com 

$piece = substr($url, strpos($url, 'param2=') + 7 , -0); 
=>  (empty) 

所以我從來沒有得到最後一個字符,也許你知道我在做什麼錯。

+0

有什麼期待的結果嗎? –

+1

http://example2.com/,'/'總是被截斷。也試過沒有/但是然後是米丟失。 – nova

+1

請參閱手冊中的Dup和lookup ['parse_url()'](http://php.net/manual/en/function.parse-url.php) – RiggsFolly

回答

2

您可以使用explode(): -

<?php 

$string = 'http://example.de/?param=1&param2=http://example2.com/'; 

echo explode('&param2=',$string)[1]; 

輸出: - https://eval.in/657097

對於評論查詢,做到象下面這樣: -

https://eval.in/657101

+0

唯一的問題是,如果在在_param2_ –

+0

之後有多個參數我在_&_上再次爆炸並且用索引_0_ –

+0

@AllenButler在我的答案中檢查我的第二個示例鏈接。很高興幫助你。歡呼:) :) –

相關問題