Php 如何从bbcode post获取有效的子字符串
这个想法是让用户帖子的前80个字符在一些概览模式下可见。但是我如何使用bbtags来实现这一点呢Php 如何从bbcode post获取有效的子字符串,php,bbcode,Php,Bbcode,这个想法是让用户帖子的前80个字符在一些概览模式下可见。但是我如何使用bbtags来实现这一点呢 如何在BBTAG/LIE的中间不剪断字符串 如何不只是打开标签 我不能忽略这些标签,因为其中一个是spoiler:-)(我可以忽略简单的格式) 我完全不知道该怎么做,快速的谷歌搜索也没用 例如: Darth Vader [spoiler]is father of luke skywalker[/spoiler] 如果我想要20个字符的子字符串,我希望: Darth Vader [spoiler
-
如何在BBTAG/LIE的中间不剪断字符串
- 如何不只是打开标签
- 我不能忽略这些标签,因为其中一个是spoiler:-)(我可以忽略简单的格式)
Darth Vader [spoiler]is father of luke skywalker[/spoiler]
如果我想要20个字符的子字符串,我希望:
Darth Vader [spoiler]is fathe[/spoiler]
也许你可以帮助这段代码,它应该得到进一步的发展,但是想法应该很清楚:
$str = 'Darth Vader [spoiler]is father of luke skywalker[/spoiler]';
function parse($str, $count)
{
$arr1 = str_split($str);
$result = [];
$i = 0;
$open = false;
foreach ($arr1 as $chr)
{
if ($open || $chr === '[')
{
$open = true;
if ($chr === ']')
{
$result[] = $chr;
$open = false;
}
else
{
$result[] = $chr;
}
}
elseif($i <= $count)
{
$result[] = $chr;
$i++;
}
}
return implode($result);
}
echo parse($str, 20);
$str='darthvader[spoiler]是卢克·天行者[/spoiler]的父亲';
函数解析($str,$count)
{
$arr1=str_分割($str);
$result=[];
$i=0;
$open=false;
foreach($arr1作为$chr)
{
如果($open | |$chr==='[')
{
$open=true;
如果($chr==']')
{
$result[]=$chr;
$open=false;
}
其他的
{
$result[]=$chr;
}
}
elseif($i)您可以在您的答案中添加一个示例吗?我不明白您等待的结果是什么。@Maxitkach-示例添加