【问题标题】:Grab the HREF and discard of that original <a> tag with PHP使用 PHP 获取 HREF 并丢弃原始 <a> 标记
【发布时间】:2011-10-04 05:06:42
【问题描述】:

我正在使用 wordpress,我使用的这个函数返回这个或看起来像这样的东西:

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

我想要做的是从该标签中获取 HREF 并将其存储在一个变量中,以便我可以轻松地对其进行操作。然后在我获得 HREF 信息后,我想丢弃 &lt;li&gt;&lt;a&gt; 标签。

我查看了 php 函数 strip_tag(),但这并没有达到我想要的效果。

如果这过于复杂,我将不会在网页中包含该工作,但如果可以完成.. 帮助会很棒。

【问题讨论】:

标签: php wordpress href strip-tags


【解决方案1】:

您的解决方案将如下所示。

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

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

【讨论】:

    【解决方案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];
    

    【讨论】:

    • 我已经检查了任何可用的功能,没有一个返回未格式化的。这实际上是未格式化的,因为我可以使用我现有的功能设置来获得它。
    • @ApoY2k: ++ 是所有格量词。只是一个小的优化,以防止可能的无用回溯。
    【解决方案3】:

    更多的东西怎么样? - 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,这将返回 url

    $imgData = wp_get_attachment_image_src( $attachment_id);
    echo $imgData[0];
    

    【讨论】:

    • 我不能使用任何其他功能的原因是因为我使用了我似乎从未使用过的 LINK 部分。所以我用它作为最终用户在不知道代码的情况下更改链接/图片的简单方法。唯一适用于 LINK 部分的函数是 wp_list_bookmarks()
    • 如何让您更直接地访问?更新了我的答案。
    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多