字符串
<div id="main">
content (is INT)
<div>some more content (is not INT) other content (also INT)</div>
</div>
我需要获得content
这是一个INT。一个简单的条带所有非INT函数将不起作用,因为other content
有时也是一个INT。我不能使用select子解决方案,因为它总是在div之外,选择<div id="main">
的内容也会选择另一个div。
因此,有一个解决方案可以从第一个<
开始搜索字符串,并在找到时删除其余的字符串。
(结构不能改变)
答案 0 :(得分:1)
$html = '<div id="main">
12345
<div>foobar6789</div>
</div>
';
$content_1 = substr($html,15,strpos($html,'<div>')-15); //the first INT content
$subdiv = str_replace("</div>","",substr($html,strpos($html,'<div>')+5));
preg_match('/(?P<noint>[^0-9]+)(?P<digit>\d+)/', $subdiv, $matches);
echo $matches['noint'];//the NO INT content
echo $matches['digit'];//the second INT
使用regexp解析html不是一个好主意......但也许你只能使用preg_match
...