我有一个包含URL的字符串,我希望能够选择整个字符串。我的意思是分成一个数组,并用不同的URL替换。 我正在努力探索如何获得完整的URL,这可能是为了搜索http的strpos,然后是下一个空白区域的下一个空格,但我似乎无法得到我的头围绕如何实现这一点。
$test = 'testing the test http://www.effef.com this is the end';
echo $pos = strpos($test,'http');
在此字符串中,我们希望获得字符串“http://www.effef.com”
如何创建字符串变量,该字符串是字符串中的URL?
答案 0 :(得分: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);
答案 1 :(得分: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 />"; }
}
答案 2 :(得分: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;
}
对我来说,它回复了网址http://www.effef.com/