1

在这里我有我的打印功能:

<?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 定义不适用于“中断”跨度。知道为什么会发生这种情况以及如何阻止它吗?我环顾四周,找不到原因/解决方案。谢谢。

4

2 回答 2

2

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

您可以改用它来摆脱它trim($t['tag'])

于 2013-06-14T13:46:31.107 回答
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 " ";

    }
}
于 2013-06-14T13:52:55.010 回答