首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我直接输出从<cffunction>返回的值时,Lucee为什么要在前导空格字符前面加上一个字符,以及如何阻止它?

当我直接输出从<cffunction>返回的值时,Lucee为什么要在前导空格字符前面加上一个字符,以及如何阻止它?
EN

Stack Overflow用户
提问于 2019-11-12 22:19:29
回答 1查看 228关注 0票数 2

函数的输出有一个非常奇怪的问题。我有一个对用户输入进行消毒的基本功能。当我试图输出函数结果时,我会得到一个空格加在前面的值。如果我将函数结果赋值给一个变量,然后输出该变量,空间就不存在。这是我说的一个例子。假设有一个名为fn_SanitizeInput()的函数。

代码语言:javascript
复制
<cfset var_UserInput = "foo">
<cfset var_SanitizedUserInput = fn_SanitizeInput(var_UserInput)>  // foo

<cfoutput>

    Input Length: #len(var_UserInput)#          // 3
    Sanitized Input Length:
        #len(fn_SanitizeInput(var_UserInput))#  // 3
        #len(var_SanitizedUserInput)#           // 3

    Function Output: |#fn_SanitizeInput(var_UserInput)#|                // | foo|
    Trimmed Function Output: |#trim(fn_SanitizeInput(var_UserInput))#|  // | foo|
    Var Output: |#var_SanitizedUserInput#|                              // |foo|

</cfoutput>

我不明白为什么len()函数返回3,但是在打印结果时会显示四个字符。由于修整函数仍然给了我主导的空间,我觉得函数的结果是正确的,Lucee在执行评估时由于一些未知的原因而添加了这个空间。还有其他人碰到这个吗?如果需要,我可以先将所有结果赋值给一个变量,但我仍然想知道为什么会发生这种情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-13 02:25:18

短答案

变化

代码语言:javascript
复制
<cffunction name="fn_SanitizeInput">
    <cfargument name="arg">
    <cfreturn arguments.arg>
</cffunction>

代码语言:javascript
复制
<cffunction name="fn_SanitizeInput" output="false">
    <cfargument name="arg">
    <cfreturn arguments.arg>
</cffunction>

更长的答案

空间是从哪里来的?

空格从<argument>标记的末尾到<cfreturn>标记的开始。如果你真的想,你可以

代码语言:javascript
复制
<cffunction name="fn_SanitizeInput"><cfargument name="arg"><cfreturn arguments.arg></cffunction>

您编写的代码可能如下所示:

代码语言:javascript
复制
#len(fn_SanitizeInput(var_UserInput))#

但实际上,它是这样的:

代码语言:javascript
复制
 <cfsavecontent var="result">#fn_SanitizeInput(var_UserInput)#</cfsavecontent>

 #len(result)#

一些的社论

我真的希望cfml函数的默认输出模式是静默的,但遗憾的是,事实并非如此。为了我自己的理智,我设置了output="false",这样我就不用担心了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58827551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档