Php 如何在特定索引处设置字符串中字符的样式?
您能给我一些指导,告诉我如何在特定索引处为字符串中的一个字符设置样式吗?这个字符串的索引来自一个数组,在某些情况下数组是空的,所以我只需要在数组不是空的情况下设置字符串中的字符的样式Php 如何在特定索引处设置字符串中字符的样式?,php,string,highlighting,dna-sequence,Php,String,Highlighting,Dna Sequence,您能给我一些指导,告诉我如何在特定索引处为字符串中的一个字符设置样式吗?这个字符串的索引来自一个数组,在某些情况下数组是空的,所以我只需要在数组不是空的情况下设置字符串中的字符的样式 $indices = array(74, 266); $string = "CAGGACACTCTTTCTAGTGTTGATTCACCTCGAAGAAGGTCTGGCCTATTAAGAGATCAAGTTCAGTTGGTAAAAAGAAGCAACTCTGCTCGTTATGAGATAGTCCCGATTCAAGAT
$indices = array(74, 266);
$string = "CAGGACACTCTTTCTAGTGTTGATTCACCTCGAAGAAGGTCTGGCCTATTAAGAGATCAAGTTCAGTTGGTAAAAAGAAGCAACTCTGCTCGTTATGAGATAGTCCCGATTCAAGATCAACTATCATTTGAGAAGGGTTTCTTTATTGTAATCCGTGCATGCCAGTTGTTGGCTCAGAAGAATGAAGGCATTGTACTGGTGGGAGTCGCTGGTCCTTCAGGGGCCGGAAAGACCATGTTTACAGAAAAGATCCTGAATGTTATGCCTAGTATTGCAATCATAAACATGGACAACTACAATGATCCCAGTCGTATCATTGATGGAAACTTCGACG";
那么,我如何在索引74和266处添加一个带跨距的环绕字符,以便给它一种不同的样式呢
我的数据来自数据库,所以我需要使其动态化
谢谢,这相当简单:您只需在循环中使用几个
substr
s,并跟踪字符数
下面是我编写的一个工作代码:
// zero-based indices
$indices = array(3, 10, 25);
// input
$in = 'abcDefghijKlmnopqrstuvwxyZ';
$openTag = '<b>';
$closeTag = '</b>';
$out = '';
$last = 0;
foreach($indices as $i) {
$fragment = substr($in, $last, $i-$last);
$letter = substr($in, $i, 1);
$last = $i+1;
$out .= $fragment . $openTag . $letter . $closeTag;
}
$out .= substr($in, $last);
// output
echo $out;
谢谢你的帮助。。正是我想要的。不客气;)。事实上,我很喜欢这个问题,有点挑战性。
function highlightChars($text, $indices, $openTag, $closeTag) {
$out = '';
$last = 0;
foreach($indices as $i) {
$fragment = substr($text, $last, $i-$last);
$letter = substr($text, $i, 1);
$last = $i+1;
$out .= $fragment . $openTag . $letter . $closeTag;
}
$out .= substr($text, $last);
return $out;
}