通常我们都是根据标签寻找给定内容,在给定内容中寻找标签,这对我是个很难的问题,所以从村子中把这个问题转载过来方便以后查看
这是村子中52php遇到的面试题
写一段代码找出给定的文章两边最近的html标签。比如给定的内容如下:
<div id="content">即时辞典提供丰富完整的资料库,包含英汉汉英辞典、日汉汉日辞典、计算机专业辞典、法律辞典、汉语辞典、文法辞典, <strong>句型宝典</strong>、片语辞典、<span style="data">英语学习参考资料。</span>特别全新收录:英汉双向医学、金融词典、动画辞典,图解辞典、14万英文 单词全真人发音。新增在线大众字库,更多的扩充解释与您共享。</div>
查找内容"英语学习参考资料。"的标签,那么是
<span style="data"></span>
如果给定是是
<strong>句型宝典</strong>、片语辞典、<span style="data">英语学习参考资料。</span>特别全新收录:
那么标签是
<div id="content"></div>
飞豹游侠给出了一段代码:
<?php
$s = '
<div id="content">即时辞典提供丰富完整的资料库,包含英汉汉英辞典、日汉汉日辞典、计算机专业辞典、法律辞典、汉语辞典、文法辞典,<strong>句型宝典</strong>、片语辞典、<span style="data">英语学习参考资料。</span>特别全新收录:英汉双向医学、金融词典、动画辞典,图解辞典、14万英文单词全真人发音。新增在线大众字库,更多的扩充解释与您共享。</div>
';
//$w = '英语学习参考资料。';
$w = '文法辞典,<strong>句型宝典</strong>、片语辞典、<span style="data">英语学习参考资料。</span>特别全新收录';
//这里还有其它的需要替换的字符
$w = str_replace('/', '\/', $w);
preg_match_all('/(<([\w]+)[^>]*>).*?(' . $w . ').*?(<\/>)/', $s, $ary);
print "<pre>";
print_r($ary);
exit();
?>