获取 HREF 并丢弃原始的 。用 PHP 标记

发布于 2024-11-19 22:01:57 字数 429 浏览 5 评论 0原文

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

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

我想做的是从该标签获取 HREF 并将其存储在变量中,这样我就可以轻松地操作它。然后,在获得 HREF 信息后,我想丢弃

  • 标记。
  • 我查看了 php 函数 strip_tag() ,但它没有达到我想要的效果。

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

    Im working with wordpress and this function im using returns this or something that looks like this:

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

    What Im trying to do is get the HREF from that tag and store it in a variable, so I can manipulate it easily. Then after i have the HREF info i want to discard of the <li> and the <a> tag.

    I looked into the php function strip_tag() and that doesn't do what i want.

    If this is overly complicated i will just not include the work in the webpage, but if it can be done.. help would be great.

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(3

    执手闯天涯 2024-11-26 22:01:57

    首先,确保不存在返回未格式化数据的其他函数。

    如果没有,这里有一个快速但肮脏的正则表达式来提取 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];
    

    First of all, make sure no other function exists that returns the unformatted data.

    If not, here's a quick and dirty regex to pull out the 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];
    
    椵侞 2024-11-26 22:01:57

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

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

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

    Your solution will look something like this.

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

    More examples here: http://php.net/manual/en/function.preg-match.php

    盛夏尉蓝 2024-11-26 22:01:57

    更实际的事情怎么样? - 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];
    

    How about something more hands on? - 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 has many built in functions. You can probably get the image URL itself without having to hack it out of the code.

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

    This will return the url if you know the attachment id

    $imgData = wp_get_attachment_image_src( $attachment_id);
    echo $imgData[0];
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文