PHP 获取标签之间的文本 + 标签本身

我想获取 [tag] 和 [/tag] 之间的所有文本(包括标签)。


所以这句话。


The cat said [tag]hi to dog[/hi] at the park.


使用这个功能。


function get_string_between($string, $start, $end){

    $string = ' ' . $string;

    $ini = strpos($string, $start);

    if ($ini == 0) return '';

    $ini += strlen($start);

    $len = strpos($string, $end, $ini) - $ini;

    return substr($string, $ini, $len);

}

我可以返回标签之间的文本。但我也想要标签。基本上,我想扫描文本中的标签,以确保有开始标签和结束标签。然后允许我编辑内容和标签。因此,如果文本周围存在 [tag] 和 [/tag],请将文本周围的 [tag] 和 [/tag] 更改为 和 。


我可以使用 str_replace 来完成它们,但我不知道如何结合对开始标签和结束标签的搜索并替换它们。


有只小跳蛙
浏览 43回答 1
1回答

心有法竹

尝试下面的代码,基本上你需要检测开始标签和结束标签,并根据需要在 substr 中包含标签。function get_string_between($string, $start, $end){    $posStart = strpos($string, $start);    if (!($posStart !== false)) return '';    $posEnd = strpos($string, $end);    if (!($posEnd !== false)) return '';    $len = strlen($end);    return substr($string, $posStart, $posEnd - $posStart + $len);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5