通过PHP按字符串开头的HTML标记拆分字符串

时间:2011-06-27 15:06:51

标签: php regex string

这是合约。我有一个字符串,一开始就包含一个html <a><img /></a>标记。字符串从rss返回。我需要的是将字符串分成两部分。我希望将<a><img></a>和其余字符串放在其他变量中。

算法:

  • 检查字符串是否以<a><img></a>
  • 开头
  • 找到<a><img></a>并保存在变量中。
  • 从原始字符串中删除<a><img></a>
  • 返回两个变量。

示例

    <a href=""><img src="" /></a> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse eros. Nam augue. Morbi fermentum elit sit amet metus. Cras libero nulla, 
ultricies pulvinar, dapibus eu, tempus et, turpis. Donec urna ligula, commodo ac, tristique ut, egestas eu, justo. Fusce consectetuer vehicula magna. In turpis risus, malesuada et, commodo eget, ornare et, mauris.

问题:

无法弄清楚如何在php中执行此操作。我在这个站点看到了一些代码,包括正则表达式和遍历字符串的解析。我想找到一种方法,当正则表达式函数在第一次匹配时断开,而不是遍历整个字符串。 将在循环中使用,所以关于速度。

1 个答案:

答案 0 :(得分:4)

如果您可以保证您的输入字符串始终采用这种格式,那么:

$closetag = strpos($input, '</a>') + 4; // strpos will return position of `<`, so move up 4 chars

if ($closetag !== FALSE) {
    $first = substr($input, 0, $closetag);
    $last = substr($input, $closetag);
} else {
    $first = $last = 'ERROR';
}