如何在cfscript标签内部进行cfdump?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在cfscript标签内部进行cfdump?相关的知识,希望对你有一定的参考价值。

为了调试我想将某些变量转储到我的网页上。我怎么能从cfscript标签内做到这一点?

我尝试了以下但它不起作用:

<cfscript>
  ...
  <cfif cgi.REMOTE_ADDR eq "IP">
    <cfdump var="#var1#"><br/>
  </cfif>
  ...
</cfscript>

关于可以做什么的任何线索?

答案

您不能像CF 9之前的版本那样直接执行此操作。但是,您可以使用CFLib中的dump() UDF。那里有一整个UDF库,它们模仿没有直接CFSCRIPT等价物的CF标签。

ColdFusion 9(及以上)提供writeDump()功能。

Adobe文档Linkfor WriteDump()函数

另一答案

像writeDump()一样使用writeOutput()

参见CF 9参考文献中的writeDump

另一答案

以下是不是更容易和直接?

oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);

它适用于CF7和前进,甚至更早。

另一答案

编写自己的内容也相当容易。您只需在cfml而不是cfscript中定义一个函数。您也可以使用它来做cfaborts和cfloops。

这样的事情(脱离我的头顶......没有执行)。

<CFFUNCTION NAME="MyDump">
    <CFARGUMENT NAME="OBJ" Required="TRUE">
    <CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
  if(cgi.REMOTE_ADDR eq "IP"){
    MyDump(Var1);
  }
</CFSCRIPT>
另一答案

现在,在启动ColdFusion 11的cfscript中允许使用普通标签名称

<cfscript>
    cfdump (var=#myVar#);
</cfscript>
另一答案
<cffunction name="setAbort" access="private" returntype="void" output="false">
 <cfdump var="#arguments#"/><cfabort>
</cffunction>
另一答案

对于转储,我们使用Writedump(myvar);而不是在cfscript中我们使用abort;而不是退出任何实例的程序执行。我们使用writeoutput();代替

 <cfoutput>#myvar#</cfoutput>

下面是cfscript中转储和中止的代码。

writedump(myvar); for dump

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript

以上是关于如何在cfscript标签内部进行cfdump?的主要内容,如果未能解决你的问题,请参考以下文章

如何在cfscript内部输出到网页?

cfscript中IF块内的coldfusion continue关键字/奇怪的行为

cfscript cfabort放弃

cfscript和queryExecute()使用like而不是equals

如何在自定义 ColdFusion 日志文件中获得新行?

我可以将文件写入linux目录,指定cfscript中的文件权限吗?