我有一个模式,用html的bock选择电话号码,它的作品很完美(我用它来制作数字只在点击“显示”数字时显示“用div将数字换成”preg_replace“。< / p>
$pattern = '!(\b\+?[0-9()\[\]./ -]{7,17}\b|\b\+?[0-9()\[\]./ -]{7,17}\s+(extension|x|#|-|code|ext)\s+[0-9]{1,6})!i';
问题是它在IMG A标签内选择数字。
例如:domain.com/images/09/2015,将选择数字“09/2015”。
或者链接domain.com/2015/09“2015/09”将由模式选择。
我怎么能设置模式不在那些标签内?
这不是一个如何从html中提取数据的问题。我知道还有其他一些方法。该脚本工作并匹配我需要的数字。我的问题是如何扩展此脚本中的模式以不包括A IMG标记之间的匹配。
答案 0 :(得分:1)
我在php_simple_dom的帮助下解决了这个问题:
require ("simple_html_dom.php");
$html = str_get_html($content);
$content = '';
foreach ( $html->find('p') as $line){
if(strpos($line,'<a') == false && strpos($line,'<img') == false && strpos($line,'< img') == false && strpos($line,'< a') == false) {
$content .= preg_replace($pattern, $part_1_before_phone_href .'$1' .$part_2_after_phone_href . $show_number_text . $part_3_close_tag ,$line);
}
else {
$content .= $a;
}
}