繁体   English   中英

使用preg match all获取标签的内容

[英]Get the contents of a tag using preg match all

如何使用preg match all获得此字符串的链接?

<h3 class='post-title entry-title'>
<a href='http://domain.blogspot.com/2011/03/blog-post_111.html'>Test Post</a>
</h3>

这是我到目前为止所做的

<?php

$string = file_get_contents('http://www.domain.com');

    $regex_pattern = "/<h3 class=\'post-title entry-title\'>([^`]*?)<\/h3>/";

unset($matches);
preg_match_all($regex_pattern, $string, $matches);


foreach ($matches[0] as $paragraph) {
echo $paragraph;
echo "<br>";
}
?> 

谢谢!

不要使用正则表达式来解析HTML。 请改用DOMDocument之类的DOM解析器。

也许/href='([^']*)'/gi帮助吗?

创建正则表达式时,RegExr是一个很好的工具。 但是正则表达式要慢得多。 您可以通过添加一些代码和3个函数来获得相同的效果:strlen,strpos和substr。 那将是如何处理此问题的斋戒版本之一。

尝试

function between ( $before , $after , $subject )
{
    $subject = $subject;
    $start = strpos ( $subject , $before );
    if ( $start !== false )
    {
        $end = strpos ( $subject , $after , $start );
        if ( $end !== false )
        {
            return substr ( $subject , $start + strlen ( $before ) , $end - ( $start + strlen ( $before ) ) );
        };
    };
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM