用于匹配锚标记的php正则表达式

问题描述

| 转到此页面的来源:www.songs.pk/indian/7days.html 只会有八个以ѭ0开头的链接 例如:
<a href=\"http://link1.songs.pk/song1.php?songid=2792\">Tune Mera Naam Liya</a>
我想要一个匹配的PHP正则表达式
http://link1.songs.pk/song1.php?songid=2792
Tune Mera Naam Liya
谢谢。     

解决方法

        最好使用诸如simplehtmldom之类的东西来查找所有链接,然后使用相关的HTML / href查找所有链接。 使用regex解析HTML并不总是最好的解决方案,就您而言,我认为这只会给您带来痛苦。
$href = \'some_href\';
$inner_text = \'some text\';

$desired_anchors = array();

$html = file_get_html (\'your_file_or_url\');

// Find all anchors,returns a array of element objects
foreach($html->find(\'a\') as $anchor) {
    if ($a->href = $href && $anchor->innertext == $inner_text) {
        $desired_anchors[] = $anchor;
    }
}

print_r($desired_anchors);
那应该让您开始。     ,        不要使用正则表达式伙伴! PHP为此提供了一个更合适的工具...
$dom = new DOMDocument;

$dom->loadHTML($str);

$matchedAnchors = array();

$anchors = $dom->getElementsByTagName(\'a\');

$match = \'http://link1\';

foreach($anchors as $anchor) {

   if ($anchor->hasAttribute(\'href\') AND substr($anchor->getAttribute(\'href\'),strlen($match)) == $match) {
      $matchedAnchors[] = $anchor;
   }

}
    ,        干得好
preg_match_all(\'~<a .*href=\"(http://link1\\..*)\".*>(.*)</a>~Ui\',$str,$match,PREG_SET_ORDER);
print_r($match);
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...