Возьмите HREF и отбросьте этот оригинальный тег <a>с помощью PHP - PullRequest
0 голосов
/ 13 июля 2011

Я работаю с WordPress, и эта функция, которую я использую, возвращает это или что-то вроде этого:

<li><a href="http://foo.com/wp-content/uploads/2011/07/picture.png">picture</a></li>

То, что я пытаюсь сделать, это получить HREF из этого тега и сохранить его в переменной, чтобы я мог легко манипулировать им. Затем, после получения информации HREF, я хочу отказаться от тега <li> и <a>.

Я посмотрел на функцию php strip_tag(), и это не делает то, что я хочу.

Если это слишком сложно, я просто не буду включать работу на веб-странице, но если это можно будет сделать ... помощь будет отличной.

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Прежде всего, убедитесь, что не существует другой функции, которая возвращает неформатированные данные.

Если нет, вот быстрое и грязное регулярное выражение для извлечения URL:

$str = '<li><a href="http://foo.com/wp-content/uploads/2011/07/picture.png">picture</a></li>';

preg_match('~\shref="([^"]++)"~', $str, $matches);
$url = $matches[1];
1 голос
/ 13 июля 2011

Как насчет чего-нибудь еще? - http://wp -snippets.com / 727 / custom-display-of-links-blogroll /

    $links = $wpdb->get_results("SELECT * FROM $wpdb->links ORDER BY link_name ASC");
    //start going through all the links and get the required values for each link
    foreach ($links as $link) {
      $linkurl=$link->link_url;
      $linkdesc=$link->link_description;
      $linkname=$link->link_name;
      $linkimage=$link->link_image;
      $linknotes=$link->link_notes; }

Wordpress имеет много встроенных функций. Вы, вероятно, можете получить сам URL изображения, не взламывая его из кода.

http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Это вернет URL, если вы знаете идентификатор вложения

$imgData = wp_get_attachment_image_src( $attachment_id);
echo $imgData[0];
1 голос
/ 13 июля 2011

Ваше решение будет выглядеть примерно так.

preg_match('@<a href="(.*?)"@i', $your_string_here, $matches);
$the_url = $matches[1];

Больше примеров здесь: http://php.net/manual/en/function.preg-match.php

...