如果我在字符串中有以下文本:
<h4>Tom</h4>
<p>One Paragraph</p>
<p>Two Paragraph</p>
Run Code Online (Sandbox Code Playgroud)
我需要在该字符串上解析什么代码来获得这样的输出(如果我不知道<h4>标签内部是什么?
<p>One Paragraph</p>
<p>two Paragraph</p>
Run Code Online (Sandbox Code Playgroud)
谢谢!
Gum*_*mbo 10
您可以使用strstr以获取子字符串开头</h4>并删除</h4>with substr:
$needle = '</h4>';
$rest = substr(strstr($string, $needle), strlen($needle));
Run Code Online (Sandbox Code Playgroud)
从PHP 5.3开始,您还可以使用true指定第三个参数before_needle:
$rest = strstr($string, $needle, true);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用explode:
list(,$rest) = explode($needle, $string, 2);
Run Code Online (Sandbox Code Playgroud)
使用stripios开始</h4>.添加</h4>偏移的长度,然后使用substr获取偏移后的所有文本.
例:
$str = '....Your string...';
$offset = stripos($str, '</h4>');
if ( $offset === false ){
//error, end of h4 tag wasn't found
}
$offset += strlen('</h4>');
$newStr = substr($str, $offset);
Run Code Online (Sandbox Code Playgroud)
我应该指出,如果HTML变得更复杂或者你不控制HTML,你可能想要使用HTML解析器.如果(例如)遇到< /h4 >而不是失败,它会更加强大并且不太可能失败</h4>.但是,在这种情况下,它是矫枉过正的.