2016-02-16 57 views
0

我有一個包含URL的字符串,我希望能夠選擇整個字符串。我的意思是分解成一個數組,並替換爲一個不同的URL。 我只是努力想要弄清楚如何獲得完整的URL,這大概是爲了搜索http的strpos,然後是下一個空白空間,下一個空白空間的strpos,但是我似乎無法得到我的頭繞如何實現這一點。查找字符串中的URL

$test = 'testing the test http://www.effef.com this is the end'; 
echo $pos = strpos($test,'http'); 

在這個字符串,我們希望得到字符串「http://www.effef.com

如何創建一個字符串,它是一個字符串的URL的變量?

+1

可能重複(HTTP ://stackoverflow.com/questions/11116215/need-preg-match-all-links) – roullie

+0

如果你發佈了一些示例數據,這將有所幫助 – user2182349

回答

0

試試這個:

$test = 'testing the test http://www.effef.com this is the end http://www.facebook.com'; 
$arr = explode(" ", $test); 
foreach ($arr as $key => $value) { 
    if (strpos($value, 'http') !== false) { echo $value."<br />"; } 
} 
0

你可以嘗試

$string = "testing the test https://www.effef.com this is the end"; 

if (preg_match('/https?:\/\/[^\s"<>]+/', $string, $find_url)) { 

$url = $find_url[0]; 

echo $url; 

} 

對於我來說,回聲出URL http://www.effef.com/

1

你不需要在一個數組和循環通過它向上突破取代它。您可以使用preg_replace爲您的目的。

$string = 'testing the test http://www.effef.com this is the end http://www.effef.com'; 

$replacement = 'http://www.newurl.com'; 
$regex = '/http:\/\/([^\s]+)/'; 

// if you are always sure that the url you want to replace is same then 
// $regex = '/http\:\/\/www\.effef\.com/'; 

$new_string = preg_replace($regex, $replacement, $string); 

var_dump($new_string); 

這裏是工作php-fiddle

但是,如果你想在無論出於何種原因數組,你可以使用[這裏] preg_match_all

preg_match_all($regex, $string, $matches); 
var_dump($matches);