我正在开发一个应用程序(使用PHP、javascript )。下面是关于我的问题陈述的简短描述。
在我的应用程序中,有两种形式是可以维护的,即SourceFrm和targetFrm。我正在接受第一种形式的输入,即SourceFrm,并在targetFrm上进行处理。
下面是我从SourceFrm :获得的输入
1)输入数据(标识此输入框的id为“inputdata” ):
2)输入id (标识输入框id为id ):
根据上面的用户输入提要,我将此数据发布到targetFrm以供进一步处理。
在TargetFrm:
我只是将inputdata值分配给php。单词之间的空格正在丢失(多个空格转换成一个空格)。
用户在输入框中添加了下面的数据并提交了
输入数据:
This is my test.这里观察到,用户在'my‘和'test’单词之间增加了5个空格。将此输入数据分配给php变量之后。之后,我在内容下面打印了这个值。
输出:
This is my test.多个空格正在转换为一个空格。我在FF、MSIE7/8 opera、safari、chrome等所有浏览器上都检查过这种行为。
如果在打印php变量之前使用了'<pre>',即:
print "<pre>";
print $inputdata;在时间上,空间没有消失(我得到了确切的内容)。
在这里,我的矛盾是如何在不使用'<pre>'的情况下预置准确的内容。我在进一步的数据处理中使用了编码/解码(htmlentitiesencode()和decode () )功能,因此如果我用 替换空格,可能会造成一些冲突。(如果我使用 而不是空格,可能会发生冲突)。
是否有人有任何想法,建议请提出。
-Thanks
发布于 2010-08-02 12:24:09
当您将变量输出到HTML时,它们被解析为HTML。任何额外的空白都会降到一个空格。
一个简单的修复将用 html实体替换所有空格,以强制浏览器显示每个空格。
我不会将字符串与数据库中的所有&nbps;一起存储,但是当您显示它时, 将确保每个空间都被看到。
编辑
我的意思是只替换render...like上的空格:
print str_replace(' ', ' ', $inputdata);
发布于 2010-08-02 14:26:38
HTML只能显示一个空格。我不太清楚为什么,但是如果您检查包含字符串的呈现网页的源代码,您会发现它包含所有的空间,浏览器只是没有显示它。
其他空格字符也是如此,如制表符。
处理它的方法取决于内容的类型。您可以用 替换空格,或者保留它的原样,或者做一些完全不同的事情,即将多个空格分割成一个空格。
这真的取决于你的数据的性质-唯一的真实情况,当你需要更多的空间时,我想到的是,如果你试图用空格缩进东西,什么实际上不是那么好的想法。
编辑:旧资源:
http://www.sightspecific.com/~mosh/WWW_FAQ/nbsp.html
https://stackoverflow.com/questions/3387604
复制相似问题