PHP Не получается извлечь ссылку из текста

Neptoon
На сайте с 12.07.2011
Offline
126
929

В прошлой теме я искал решение, как прочитать письмо на PHP. С тем вопросом разобрался, ссылку на скрипт выложил.

А сейчас другая проблема. Приходит письмо в таком виде

"Пожалуйста, подтвердите свою регистрацию, перейдя по ссылке"

Пожалуйста, подтвердите свою регистрацию, перейдя <a href="http://sub.domain.ru/site/activate?activation_key=123sdf45f6">по ссылке</a><br/>

Никак не могу извлечь адрес ссылки в отдельную переменную.

Пробовал такой код, но на выходе какой-то многомерный массив получается

echo "<pre>";
// качаем страницу в переменную $buf
$buf;
// получем ссылки в массив
preg_match_all("/<[Aa][ \r\n\t]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\n\r\t]*([^ \"'>\r\n\t#]+)[^>]*>/",$buf,$url);
// выводим массив на экран
while($i<count($url[1])) { echo $url[1][$i++]."\n"; }
echo "</pre>";
echo $url[1][0];

Буду благодарен за помощь.

Drive your way
tommy-gung
На сайте с 22.11.2006
Offline
304
#1

preg_match_all("/<a href=\"(.*?)\"/is", $buf, $url);
Здесь не могла быть ваша реклама
Neptoon
На сайте с 12.07.2011
Offline
126
#2

Вот что на выходе получается

http://joxi.ru/YmEkZkXS0Gz9vA

Array ( [0] => Array ( [0] => Array ( [0] => http://sub.domain.ru/site/activate?activation_key=15e79 ) ) Array

Или так http://sub.domain.ru/site/activate?activation_key=15e79Array

S
На сайте с 30.09.2016
Offline
469
#3

Это ж как Вы измудрились из нормального выражения такую хрень получить?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
tommy-gung
На сайте с 22.11.2006
Offline
304
#4

смотреть на print_r();


<?php
$str = 'Пожалуйста, подтвердите свою регистрацию, перейдя <a href="http://sub.domain.ru/site/activate?activation_key=123sdf45f6">по ссылке</a><br/>';
preg_match_all("/<a href=\"(.*?)\"/is", $str, $tmp);
print_r($tmp);
?>


Array
(
[0] => Array
(
[0] => <a href="http://sub.domain.ru/site/activate?activation_key=123sdf45f6"
)

[1] => Array
(
[0] => http://sub.domain.ru/site/activate?activation_key=123sdf45f6
)

)
Neptoon
На сайте с 12.07.2011
Offline
126
#5


Array
(
[0] => Array
(
[0] => <a href="http://sub.domain.ru/site/activate?activation_key=123sdf45f6"
)

[1] => Array
(
[0] => http://sub.domain.ru/site/activate?activation_key=123sdf45f6
)

)

Как записать http://sub.domain.ru/site/activate?activation_key=123sdf45f6 в переменную?

S
На сайте с 13.10.2014
Offline
171
#6

Neptoon,

foreach ($tmp[1] as $value){

print $value;

}

O3
На сайте с 17.11.2008
Offline
127
#7

.....................

Neptoon
На сайте с 12.07.2011
Offline
126
#8

Не знаю, вообще не получается. По всякому пробовал

Либо получается

либо

Array
tommy-gung
На сайте с 22.11.2006
Offline
304
#9

зачем усложнять то, что известно?

Neptoon:
Как записать http://sub.domain.ru/site/activate?a...key=123sdf45f6 в переменную?

ох.. $tmp[1][0] же

Neptoon
На сайте с 12.07.2011
Offline
126
#10

Всем большое спасибо.

Дополнительно была ошибка в скрипте приема письма.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий