Ссылка на извлечение PHP из тега <a>

Возможный дубликат:
Манипуляция строк PHP: извлечение hrefs

Я использую php и имею строку с содержимым =

<a href="www.something.com">Click here</a>

Мне нужно избавиться от всего, кроме «www.something.com». Я предполагаю, что это можно сделать с помощью регулярных выражений. Любая помощь приветствуется! спасибо

Это очень легко сделать с помощью SimpleXML:

 $a = new SimpleXMLElement('<a href="www.something.com">Click here</a>'); echo $a['href']; // will echo www.something.com 

Дайте этому вихрь:

 $link = '<a href="www.something.com">Click here</a>'; preg_match_all('/<a[^>]+href=([\'"])(?<href>.+?)\1[^>]*>/i', $link, $result); if (!empty($result)) { # Found a link. echo $result['href'][0]; } 

Результат: www.something.com

Обновлено: теперь требуется, чтобы стиль цитирования соответствовал, обращаясь к комментарию ниже.

Я бы предложил следующий код для этого:

 $str = '<a href="www.something.com">Click here</a>'; preg_match('/href=(["\'])([^\1]*)\1/i', $str, $m); echo $m[2] . "\n"; 

ВЫВОД

 www.something.com 

Это будет касаться как одинарной кавычки ' и двойной цитаты в ссылке href.

Поскольку, вероятно, вы не имели в виду ваш вопрос, который был бы простым, но это делает именно то, о чем вы просите:

 $link = '<a href="www.something.com">Click here</a>'; $href = substr($link, 9, -16); 

$href :

 string(17) "www.something.com" 

Как регулярное выражение, это может быть выражено так:

 $href = preg_match('(^<a href="([^"]*)">Click here</a>$)', $link, $matches) ? $matches[1] : die('Invalid input data.'); 

Это полезно?

Предполагая, что ВСЕГДА формат переменной, ниже, должен делать трюк. Если контент не может быть ссылкой, это не сработает. По существу он ищет данные, заключенные в две цитаты.

 <?php $string = '<a href="www.something.com">Click here</a>'; $pattern = '/"[a-zA-Z0-9.\/\-\?\&]*"/'; preg_match($pattern, $string, $matches); print_r($matches); ?>