2016-02-16 3 views
0

У меня есть строки, содержащие URL-адреса, и я хочу иметь возможность выбирать целую строку. Под этим я подразумеваю разбиение на массив и замену другим URL-адресом. Я просто пытаюсь понять, как получить полный URL-адрес, который, предположительно, предназначен для поиска strpos http, а затем 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); 
Смежные вопросы