我正在学习 php,因为我研究遗传学,这对生物信息学很有用。我在使用我的代码时遇到问题,我确定它非常愚蠢,但我看不到解决方案。
这是我的代码:
$query="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
$seq=chunk_split($query,40,"<br />");
$truecol="<div style=\"color: hsl(0,100%,50%);\">";
function colorSequence ($seq,$position,$truecol,$TFBSlength){
$nucleotides = str_split($seq);
foreach ($nucleotides as $index => $nucl){
if ($index == $position){
echo $truecol;
}
if ($index == $position + $TFBSlength){
echo "</div>";
}
echo $nucl;
}
echo "\n";
}
colorSequence($seq,5,$truecol,3);
输出给出:
AAAAAAAAAA
(this is coloured)AAAAA(end of colour)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
第一行有 10 个字母,第二行有 5 个彩色字母,第三行有 45 个字母。所有行应有 60 个字母。谁能帮忙?
最佳答案
您可能想要使用 <span>
HTML 标记而不是 <div>
.
因为每个 <div>
通常由浏览器显示,上面和下面有一个换行符。
或者你可以定义如何<div>
应该看起来像 CSS,但我认为现在太多了:
div {display: inline;}
示例 <span>
HTML 元素和使用 substr
(我可能会偏离一个左右,我想你可以解决这个问题):
$truecol = 'hsl(0,100%,50%)';
colorSequence($seq, 5, $truecol, 3);
function colorSequence ($seq, $position, $truecol, $TFBSlength)
{
$before = substr($seq, 0, $position);
$color = substr($seq, $position, $TFBSlength);
$after = substr($seq, $position + $TFBSLength);
printf("%s<span style=\"color: %s;\">%s</span>%s\n",
$before, $truecol, $color, $after);
}
关于php - 用我的 php 代码用 hsl 着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428048/