2013-06-14 5 views
1

Здесь у меня есть функция печати:избежать разрыва строки в HTML вывода PHP

<?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> так:

Это означает, что мои определения CSS не применяются к «прерванным» промежуткам. Любая идея, почему это происходит и как я могу это остановить? Я хорошо осмотрелся и не смог найти причину/решение. Благодарю.

ответ

2

Кажется, что ваша переменная $t['tag'] включает в себя разрыв строки.

Вы можете избавиться от этого, используя вместо этого trim($t['tag']).

+0

Я пытаюсь выяснить, где именно в коде OP разрыв строки. Можете ли вы рассказать об этом для меня, пожалуйста? –

+0

@Fred Из внешнего вида html после тега, поэтому они будут 'NN \ n' и' RB \ n'. Обратите внимание, что не все теги включают разрыв строки, всего 2 в этом случае. – jeroen

+1

@jeroen Большое спасибо. Работает отлично! – JMB

0

Похоже, что функция $ t ['tag'] в printTag содержит символ прерывания строки. Вы можете использовать функцию 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 " "; 

    } 
} 
+0

Вы можете узнать из ответа jeroen'а (у меня есть). Это намного компактнее и элегантно. ;-) –

+0

@fred Существует много способов сделать то же самое. Я ценю ответ jeroen. –

+0

Да, действительно; всегда хорошо учиться у людей, у которых больше опыта. Я все время участвую, и в этом его красота, она учится на наших ошибках и на других ». Приветствия. –

Смежные вопросы