删除<pre> tag - html

时间:2015-07-09 10:45:33

标签: html pre

Hi I am using pre tag to dispaly some text files, but the problem is at the beginning and the end, 2-3 new lines are being printed. How do I remove that? I am getting the text file through http request and I cannot modify the text file, I have to display as is.

Or is there a better way to display text files in html?

5 个答案:

答案 0 :(得分:5)

我过去遇到过类似的问题......我认为这可能是一个问题,除非你分享代码,否则无法确定(我在AngularJS应用中遇到了问题,所以变量绑定,以下代码中的等等基于那个)

假设您必须在变量textFile.data中显示数据(我将数据存储在textFile.data变量中)

<pre ng-show = "textFile.isPresent">
    <span>
        {{textFile.data}}
    </span>
</pre>

显示html时会添加两个新行字符,因为前面标记之间的内容完全显示。因此,在“pre”标签之后和“span”标签之后的html中添加了新行,因此添加了2行。

我把它改成了

<pre ng-show = "textFile.isPresent"><span>{{textFile.data}}</span></pre>

执行此操作后删除了额外的行。请注意,您也可以通过修改css文件来删除它们。如果您不知道如何评论,我会帮助您。

这只是其中一个原因,必须看到你的代码,告诉错误是什么

答案 1 :(得分:2)

您可以尝试使用str_replace,我不确定它是否只是您需要替换的空格,或者换行符,所以我会给您几个例子...

str_replace(' ', '', $name);

如果你有空间的地方,这将删除所有可能成为问题的空格。

如果该行末尾有多个空格,那么您可以尝试...

str_replace('  ', '', $name);

将删除连续两行空格的任何内容。

如果您使用的是Linux,并且它们是换行符,您可以尝试...

str_replace('\n', '', $name);

这将删除任何以Linux结尾的行,对于Windows,你可以做...

str_replace('\r', '', $name);

或两个系统都试试......

str_replace('\r\n', '', $name);

同样,如果您的行结尾应该存在,这可能会很困难,所以如果结尾有多行结束,您可以尝试...

str_replace('\r\n\r\n', '', $name);

哪个可行。只是想我会给你所有用例,希望这可以帮助你。

答案 2 :(得分:1)

trim()标记专为显示预格式化文本而设计。

  

&lt; pre&gt; tag定义了预先格式化的文本。

     

&lt; pre&gt;中的文字元素以固定宽度字体显示(通常   Courier),它保留了空格和换行符。

     

http://www.w3schools.com/tags/tag_pre.asp

你可以在服务器端用PHP <?php $str = trim($str); echo "<pre>$str</pre>"; ?> 你的字符串。

  

trim - 从头开始​​删除空格(或其他字符)   字符串的结尾

     

http://php.net/trim

<强> PHP

.trim()

<强> UPD

如果您无法访问服务器端,只需通过JavaScript $('<pre>' + str.trim() + '</pre>'); 方法在客户端执行此操作。

Parent.Parent

答案 3 :(得分:1)

起初我以为你可以尝试用新线分裂。像这样。

<?php
    $lines = explode("\n", $html_string);
    for ($i = 0; $i < count($lines); $i++) {
        $line = trim($lines[$i]);
        $lines[$i] = $line;
    }
    $html_string = join("", $lines);
?>

但我觉得这可能还不够。可能存在单词之间存在多个空格字符的情况。

另一种方法是以两个空格递归地爆炸字符串,并在没有分隔符的情况下再次将它连接在一起。继续这样做,直到爆炸的结果只包含一个值。

编辑:在下面添加了未经测试的POC。

recursiveTrim($str) {
    $lines = explode($str, "  "); // Split by 2 spaces, not one
    if (count($lines) == 1)
    {
        return $str;
    }

    for ($i = 0; $i < count($lines); $i++) {
        $lines[$i] = trim($lines[$i]);
    }
    $str = implode("", $lines);
    recursiveTrim($str)
}

答案 4 :(得分:0)

首先从文本的左侧和右侧修剪空格,然后您可以在前面输出修剪后的值。