Получить форму значения ссылки <a href>, используя php

Мне нужно извлечь значение ссылки, которое хранится в теге <a href> , используя php-код.

 <a href="http://stackoverflow.com/questions/ask"></a> 

Из приведенного выше кода я хочу извлечь ссылку http://stackoverflow.com/questions/ask используя php-код.

Существует множество вариантов.

  • Если вы знаете, что href всегда будет единственным атрибутом для тега a, вы можете найти положение первой и последней двойных кавычек с помощью strpos / stripos и использовать substr для вытягивания href.
  • Альтернативно, даже если есть несколько атрибутов, strpos / stripos принимают смещения от того, где начать поиск строки. Если вы начинаете после href, вы можете сделать то же самое, что и выше.
  • Кроме того, вам может быть лучше с регулярным выражением, которое также находит href и идет оттуда.
  • Наконец, если это часть правильно сформированного документа XHTML, который вы повторяете, вы можете использовать SimpleXML для перебора массивов и получения каждого атрибута, который вам нужен.

Из предоставленной ограниченной информации я бы начал с первого или второго варианта и только перешел к регулярному выражению или SimpleXML, если в миксе были дополнительные требования.

Если у вас уже есть тег привязки и вы хотите получить значение href, попробуйте этот код. Он удалит другие, кроме значения «href». Единственная проблема заключается в том, что слово «href» не может находиться внутри id / class infront атрибута «href».

 $url = '<a href="http://stackoverflow.com/questions/ask"></a>'; $url = substr ( $url,(strpos($url,' href=') + 6) ); $url = explode($url[0],$url); echo $url[1]; // $url[1] will store the 'http://stackoverflow.com/questions/ask' 
 $url = '<a title="Question" href="http://stackoverflow.com/questions/ask"></a>'; preg_match("/href=\"(.*?)\"/i", $url, $matches); print_r($matches); /* Match Group(s) : 1. http://stackoverflow.com/questions/ask */ 

Вы не можете этого сделать, если ссылка не генерируется вашим PHP-кодом. PHP – это код на стороне сервера, тогда как ссылка находится на самой странице в HTML-коде клиента. Они не могут общаться друг с другом. Чтобы извлечь значение, вам нужно будет использовать скрипт на стороне клиента, например JavaScript.