2012-03-10 113 views
2

如果我有很长的字符串输入该怎么办?大概50-250个字符。 我回应了这个变量,它会回复一长串字母和单词。变量字符串内的换行符

那么,我将如何让变量自动换行呢?也许在50个字符之后,它会在回显时换行。

我想过计算字符串的长度和循环它,并计数50个字符后,它会新线,但如果我这样做,它会减慢网站。

是否有任何功能来换行a VARIABLE STRING?或者我应该使用循环呢?

+1

你并不需要插入新行。如果输出为html,它将自动包装在其包含的元素中。如果你输出到一个字符串变量中的JavaScript脚本块,没有人会看到结果。 (如果你确实想要这样做,你不一定需要循环,你可以很容易地用正则表达式替换。)还要注意的是,除非使用等宽字体,否则每x个字符插入一个换行符看起来不正确。 – nnnnnn 2012-03-10 09:39:16

回答

2

您可以使用内置的PHP函数:wordwrap

如果你想切断50个字符,并插入一个HTML断行: wordrap($str, 50, "<br />"); 您还可以使用的最后一个参数给力的回报,即使该字符串不包含空格。

+0

我尝试了wordwrap,但我无法使它工作。这行代码有什么问题吗? '<?php $ str = $ row_Personalinfo ['hospitalized']; $ newstr = wordwrap($ str,20,“
\ n”); echo $ newstr;?>' – 2012-03-10 09:52:48

+0

它只适用于当你的字符串有空间时。它帮助我感谢。 – 2012-03-10 09:56:16

+0

使用第四个参数强制换行。 – 2012-03-10 09:58:29

1

您可以将转义字符插入到字符串中,如\n将被转换为新换行符。

+2

如果你正在输出它到浏览器\ n将无法正常工作 – 2012-03-10 09:40:44

1

您可以使用PHP_EOLstrlen()一起达到您想要的效果。

0

如果你能够在PHP字符串我认为最终的解决办法是使用功能的换行:http://www.php.net/manual/en/function.wordwrap.php

您可以设置行的最大lenght的braek参数(在你的情况/ N)。

该函数返回一个带有/ n个分号的字符串,您可以打印它。

1

只是增加更多关于\n

// PHP 5.5.12 

// This works for outputing to browser: 
$XmlHeader = '<?mso-application progid="Excel.Sheet"?>' . "\n"; 

// These do NOT work: 
$XmlHeader = '<?mso-application progid="Excel.Sheet"?>' . '\n'; 
$XmlHeader = '<?mso-application progid="Excel.Sheet"?>\n'; 
+0

这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你会能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment)。 – SuperBiasedMan 2015-09-30 08:46:04

+1

纠正这并不是为了回答这个问题。但如果我们只是阅读这个问题的标题,这个答案可能会在未来帮助某人。我只想评论其他答案,但不能因为缺乏代表。 – Zunair 2015-09-30 12:18:57