Ang*_*cio 0 html php regex preg-replace
我是正则表达式的新手,但我正在努力学习它.我想删除html文本的标记,只允许内部文本.像这样的东西:
Original: Lorem ipsum <a href="http://www.google.es">Google</a> Lorem ipsum <a href="http://www.bing.com">Bing</a>
Result: Lorem ipsum Google Lorem ipsum Bing
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码:
$patterns = array( "/(<a href=\"[a-z0-9.:_\-\/]{1,}\">)/i", "/<\/a>/i");
$replacements = array("", "");
$text = 'Lorem ipsum <a href="http://www.google.es">Google</a> Lorem ipsum <a href="http://www.bing.com">Bing</a>';
$text = preg_replace($patterns,$replacements,$text);
Run Code Online (Sandbox Code Playgroud)
它有效,但我不知道这个代码是更高效还是更易读.
我可以用某种方式改进代码吗?
在您的情况下,PHP strip_tags()应该完全按照您的需要进行,而无需使用正则表达式.如果您只想删除特定标记(strip_tags()默认情况下无法执行此操作),则" 用户贡献的注释"中有一个功能.
通常,正则表达式不适合解析HTML.最好使用简单HTML DOM之类的DOM解析器或PHP的内置解析器之一.