避免PHP的HTML输出中的换行符

时间:2013-06-14 13:42:52

标签: php line output line-breaks

这里我有我的打印功能:

<?php
// little helper function to print the results
function printTag($tags) {
    foreach($tags as $t) {
            echo '<span class="' . $t['tag'] . '">';
            echo $t['token'] . "/" . $t['tag'];
            echo '</span>';
            echo " ";

    }
}

$tagger = new PosTagger('lexicon.txt');
?>

以下是我从HTML表单输出的内容:

<?php
if($_POST['submitbutton'] == "Submit") {
//Check whether the form has been submitted
$tags = $tagger->tag($_POST['texttotag']);
printTag($tags);
}
?>

我的问题是,浏览器中的输出会在我<span>的某些中间产生奇怪的换行符,如下所示:

<span class="VB">Enter/VB</span> <span class="PRP$">your/PRP$</span> <span class="NN
">text/NN
</span> <span class="TO">to/TO</span> <span class="NN">tag/NN</span> <span class="RB
">here/RB
</span>

这意味着我的CSS定义不适用于“中断”的跨度。知道为什么会这样,我怎么能阻止它?我已经好好看看并且无法找到原因/解决方案。感谢。

2 个答案:

答案 0 :(得分:2)

您的$t['tag']变量似乎包含换行符。

您可以使用trim($t['tag'])取而代之。

答案 1 :(得分:0)

printTag函数中的$ t ['tag']似乎包含换行符。您可以使用str_replace函数删除这些字符,如:

function printTag($tags) {
    foreach($tags as $t) {
        echo '<span class="' . $t['tag'] . '">';

        $ttag = str_replace('\n','',$t['tag']);
        $ttag = str_replace('\r','',$ttag);

        echo $t['token'] . "/" . $ttag;
        echo '</span>';
        echo " ";

    }
}