抓住HREF并丢弃原始<a> tag with PHP</a>

时间:2011-07-13 05:49:59

标签: php wordpress href strip-tags

我正在使用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 个答案:

答案 0 :(得分:2)

首先,确保没有其他函数可以返回未格式化的数据。

如果没有,这里有一个快速而又脏的正则表达式来提取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 :(得分:1)

您的解决方案看起来像这样。

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

此处有更多示例:http://php.net/manual/en/function.preg-match.php

答案 2 :(得分:1)

如何更多地动手? - 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

如果您知道附件ID

,则会返回该网址
$imgData = wp_get_attachment_image_src( $attachment_id);
echo $imgData[0];