使用我的PHP代码用hsl着色

时间:2012-05-03 08:51:52

标签: php html css

我正在尝试学习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个彩色字母,第3行有45个字母。所有行应该有60个字母。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可能希望使用<span> HTML标记而不是<div>

因为每个<div>通常由浏览器显示,其中包含换行符。

或者你可以用CSS定义<div>的样子,但我认为目前这个太多了:

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);
}