如何拆分字符串并添加额外的字符串



我有一个字符串,我需要在字符串的某些索引处添加一些HTML标签。

$comment_text = 'neethu and Dilnaz Patel  check this'
Array ( [start_index_key] => 0 [string_length] => 6 )
Array ( [start_index_key] => 11 [string_length] => 12 )

我需要在开始时分割索引键与string_length

中提到的长预期最终输出

$formattedText = '<span>@neethu</span> and <span>@Dilnaz Patel</span>  check this'

我该怎么办?

这是一个非常严格的方法,在第一次更改时就会中断。你能控制字符串的创建吗?如果是,您可以创建一个带有占位符的字符串并填充值。

即使你可以用regex:

$pattern = '/(.+[^ ])s+and (.+[^ ])s+check this/i';
$string = 'neehu and Dilnaz Patel  check this';
$replace = preg_replace($pattern, '<b>@$1</b> and <b>@$2</b>  check this', $string);

但这仍然是一个非常严格的解决方案。

如果您可以尝试为名称创建一个带有占位符的字符串。这将在将来更容易管理和更改。

<?php

function my_replace($string,$array_break)
{
$break_open = array();
$break_close = array();

$start = 0;
foreach($array_break as $key => $val)
{
// for tag <span>
if($key % 2 == 0)
{
$start = $val;
$break_open[] = $val;
}
else
{
// for tag </span>
$break_close[] = $start + $val;
}
}

$result = array();
for($i=0;$i<strlen($string);$i++)
{
$current_char = $string[$i];

if(in_array($i,$break_open))
{
$result[] = "<span>".$current_char;
}
else if(in_array($i,$break_close))
{
$result[] = $current_char."</span>";
}
else
{
$result[] = $current_char;
}

}
return implode("",$result);
}
$comment_text = 'neethu and Dilnaz Patel  check this';

$my_result =  my_replace($comment_text,array(0,6,11,12));
var_dump($my_result);

解释:

创建数组参数:偶数索引(0,2,4,6,8,…)将是start_index_key,奇数索引(1,3,5,7,9,…)将是string_length

读取每个断点,并将其存储在$break_open$break_close

创建数组$result循环你的字符串,添加,添加或不添加span与break_point

结果:string '<span>neethu </span>and <span>Dilnaz Patel </span> check this' (length=61)

相关内容

  • 没有找到相关文章

最新更新