在一个特殊字符串之前切断字符串并返回另一个字符串


Cut string before one special string and return other

非常简单的问题(我没有发现类似的问题)。

我有这个吹HTML代码字符串:

$one = "<html>
<head>
something>
</head>
<body>
</body>
</html>";

如何返回这个(从<body>开始:

$two = "<body>
</body>
</html>";

我需要找到<body>开始的地方,然后删除之前的所有内容。

怎么做?

谢谢。

使用strstr()

$one = "<html>
<head>
something>
</head>
<body>
</body>
</html>";
$two =  strstr($one, '<body>');
演示

您需要使用strpos()substr()函数。在我的例子中,我使用了等效的mb_,因为站点可能包含非ascii字符。

mb_internal_encoding('UTF-8');
$pos = mb_strpos($one, '<body>');
if ($pos !== false) {
   $two = mb_substr($one,$pos);
}
else  {
   $two = $one;
}

strip_tags() (php builtin)呢?

文档如下:http://ch1.php.net/strip_tags

$two = substr($one, (strpos($one, '<body>'));