小编Ada*_*ron的帖子

什么是vbscript Chr()函数的JavaScript等价物?

我需要将以下行转换为JavaScript:

cOrderNumList = frmSearch.OrderNumList.Value
cOrderNumList = Replace(cOrderNumList, Chr(10), "")
aOrderNumList = Split(cOrderNumList,",")
Run Code Online (Sandbox Code Playgroud)

什么是JavaScript的等价物 Chr(10)

javascript vbscript

11
推荐指数
2
解决办法
2万
查看次数

组件上具有accessors = true的意外行为

我试图在Lucee上的组件上使用合成访问器(虽然这个问题在ColdFusion上似乎也是一样的).

Repro代码:

// Person.cfc
component accessors=true {

    property firstName;
    property lastName;

    function init(firstName, lastName){
        variables.firstName = arguments.firstName;
        variables.lastName = arguments.lastName;
    }

}
Run Code Online (Sandbox Code Playgroud)

和调用代码:

// person.cfm
person = new Person("Abigail", "Bowen");
writeDump(person);
Run Code Online (Sandbox Code Playgroud)

注意我在这里没有使用合成访问器,我纯粹是将参数值设置为同名变量范围的变量.

但是,当我运行此代码时,我看到:

转储输出显示属性

请注意如何填充属性.这没有问题,但我显然不明白accessors旗帜应该如何运作.我认为它只是为了为我(它有)合成一些存取方法,但这就是全部.

另请注意,如果我将CFC定义修改为将访问器设置为true,则转储显示如下:

转储没有属性

因此没有合成访问器(如预期的那样),但现在甚至没有显示属性(使用变量范围值或不具有变量范围值).

我真的不明白"属性"和访问者设置的这种混淆吗?当然,访问者设置应该只影响是否创建了这些访问器方法?

如果我只是在其中一个平台上看到这个,我可能会把它归结为如何writeDump()解释属性定义的变幻莫测.但是ColdFusion 11的行为是一样的,所以看起来我的行为似乎有些不同.

有谁能解释一下?有没有解释它的文档?如果不是......嗯...为什么不呢?

我的基本担忧是,属性值没有"正确"存储,并且一旦我实现了更多的代码,可能会给我带来问题.

更新:至少在ColdFusion上,它似乎只是一个writeDump()行为的改变,因为如果有属性的getter(无论是否accessors设置了标志),那么属性值开始显示在转储中.但是Lucee的情况并非如此,所以那里仍然存在问号.

为了充分披露,这个问题是我在博客上提出的一个问题的摘要(" CFML:试图理解访问者 ").复制是故意的,因为我的博客与本网站的受众不同.

coldfusion cfml lucee

11
推荐指数
1
解决办法
951
查看次数

用于CFC的toString的CFML补充

在PHP中我可能遇到这种情况:

<?php
class Person {

    public $firstName;
    public $lastName;

    function __construct($firstName, $lastName)
    {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    function __toString()
    {
        return "{$this->firstName} {$this->lastName}";
    }
}

echo new Person("Adam", "Cameron"); // Adam Cameron
Run Code Online (Sandbox Code Playgroud)

(可运行的演示)

我可以发誓在CFML中有一个等价物,例如:

// Person.cfc
component {

    function init(id, firstName, lastName){
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    function toString(){
        return "#this.firstName# #this.lastName#";
    }
}

// test.cfm
writeOutput(new Person("Adam", "Cameron"));
Run Code Online (Sandbox Code Playgroud)

我认为这对CF11或CF2016来说是新的.

但这不行.我知道我可以做客户序列化服务器,但这不适合这里.

我也知道我可以通过其他各种方式实现相同的目标,但这不是问题.我特别要求能够实现一个toString方法或类似的方法,以便能够指定如何将对象表示为字符串.

我错误记得CFML,还是我做错了什么?

coldfusion cfml

7
推荐指数
1
解决办法
139
查看次数

PHPUnit:创建自定义代码覆盖率报告者/记录器

要在类似的工具PHPMDPHPCS中进行上下文,可以为结果输出指定自定义格式化程序,例如:

PHPMD:

 vendor/bin/phpmd test \\my\\namespace\\renderers\\phpmd\\AdamFormat phpmd.xml
Run Code Online (Sandbox Code Playgroud)

PHPCS:

vendor/bin/phpcs --standard=phpcs.xml --report=./src/renderers/phpcs/AdamFormat.php
Run Code Online (Sandbox Code Playgroud)

我希望为PHPUnit做同样的事情,但是因此得到了一个空白(调查,谷歌搜索,在这里搜索).看看PHPUnit的代码,这对我来说似乎有点硬编码:

代码覆盖率的处理程序:

if (isset($arguments['coverageClover'])) {
    $this->printer->write(
        "\nGenerating code coverage report in Clover XML format ..."
    );
    try {
        $writer = new CloverReport;
Run Code Online (Sandbox Code Playgroud)

记录:

if (isset($arguments['testdoxHTMLFile'])) {
    $result->addListener(
        new HtmlResultPrinter(
Run Code Online (Sandbox Code Playgroud)

我没有发现文档中的任何其他地方.对我来说似乎是一个奇怪的缺陷.

所以有两个问题:

  1. 我看对了吗?PHPUnit不支持这个吗?
  2. 假设"是的:不支持",任何人都有任何成功的策略以非希思罗宾逊的方式规避这一点吗?

我意识到可以使用该--coverage-php选项将结果作为PHP变量输出到另一个进程然后利用来做[无论如何],但这对我来说似乎是一种由内而外的方法,并且属于Heath Robinson类别.

php phpunit

7
推荐指数
0
解决办法
190
查看次数

server.railo是否存在于Lucee实例上?

我有这个代码:

<cfdump eval=server>
Run Code Online (Sandbox Code Playgroud)

它输出的顶级键coldfusion,java,lucee,os,separator,servlet.请注意,railo那里没有列出.

但是,如果我这样做:

<cfdump eval=server.railo>
Run Code Online (Sandbox Code Playgroud)

然后它输出运行Railo服务器时可能期望的通常结构(而不​​是Lucee服务器).

那是怎么回事?

railo lucee

6
推荐指数
1
解决办法
173
查看次数

在年度价值观的背景下,"aaaa"与"yyyy"有何不同?

参考SimpleDateFormat文档,表示年份的模式字符是y,所以我们有像yyyyyy(13,2013分别)的表示.没关系.

当我输出DEFAULT/ SHORT/ MEDIUM/ LONG/ FULL,大部分地方的模式,我得到的东西沿着这些路线:

(EG:新西兰)

Default: d/MM/yyyy
Short: d/MM/yy
Medium: d/MM/yyyy
Long: d MMMM yyyy
Full: EEEE, d MMMM yyyy
Run Code Online (Sandbox Code Playgroud)

然而,看一些地方,例如法国,我得到这个:

Default: j MMM aaaa
Short: jj/MM/aa
Medium: j MMM aaaa
Long: j MMMM aaaa
Full: EEEE j MMMM aaaa
Run Code Online (Sandbox Code Playgroud)

显然这里aaaa是年份的代表,但是yyyy和... 之间的意图区别是aaaa什么?IE:为什么他们使用aaaa而不是仅仅yyyy.

最初我认为它可能是法语的一部分,因为"[y] ear"是"[a]nnée"(而"[d] ay"是"[j]我们的",但我也看到它也aaaa适用于匈牙利语(和许多其他地方),匈牙利语为"年"是"év"(日"午睡"),所以我认为我正在做的"a"/"année"相关是巧合.

那么应该在这里推断出的差异是什么?

我用Google搜索,但画了一个空白.对于Java开发人员而言,它可能显而易见,但我只是一个CFML开发人员,当Java比我在原生CFML中做得更方便时,他偶尔会将Java固定到我的CFML中.如果这是一个愚蠢的问题,那很抱歉.

java simpledateformat

5
推荐指数
1
解决办法
591
查看次数

这是cfscript中的ColdFusion Bug吗?

这是一个有效的查询,用于返回users表中包含单引号的电子邮件.

SELECT  '''' +email + '''' as email
FROM    users
where fname = @fname
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试在cfscript(cf9)查询中执行此操作时,如下所示:

var q = new Query(datasource="warewithal");
q.setSQL("SELECT  '''' +email + '''' as email
                FROM users where firstName= :firstName ");
q.addParam(name="firstName", value=trim(firstName), cfsqltype="cf_sql_varchar");
Run Code Online (Sandbox Code Playgroud)

我最终得到的是

Email
+email+
Run Code Online (Sandbox Code Playgroud)

当我期望(并通过在分析器中运行查询获得)

Email
'bozo@clowns.com'
Run Code Online (Sandbox Code Playgroud)

cfscript正在执行一个perserveSingleQuote并且不允许我将单引号添加到输出中.

这是一个错误还是我做错了什么?

coldfusion coldfusion-9 coldfusion-10

3
推荐指数
1
解决办法
462
查看次数

ColdFusion cfmail 如何保持格式

在我的 ColdFusion 程序中,我为一个或多个收件人创建电子邮件 (HTML/CSS),并将其放在一个 .cfm 文件中。电子邮件格式很好。当我将保存的文件作为程序运行时,cfmail 标签将电子邮件发送给任何人,这一切正常。但是,在此过程中,我的格式丢失了。我知道当电子邮件到达其目标时,我的本地 CSS 没有理由运行。但如果我能保留我开始的格式就好了。

有没有人对我如何做到这一点有建议。

email coldfusion

3
推荐指数
2
解决办法
767
查看次数

需要帮助将我的PHP应用程序转换为Coldfusion.谁能帮助

这是当前的PHP,不知道如何开始转换为Coldfusion.我需要在我的coldfusion服务器上发布这个.

<?php
/**
 * Saves POST input as an XML file and returns a JSON response
 */

$xmlString;

if (isset($_POST['xmlString'])){
$filename  = $_POST['xmlFilename'];
$xmlString = stripslashes($_POST['xmlString']);

$newFile = "_data/".$filename.".edit.xml";

//write new data to the file, along with the old data 
$handle = fopen("../".$newFile, "w"); 
if (fwrite($handle, $xmlString) === false) { 
    echo "{error:\"Couldn't write to file.\"}";  
} 
else {
    //echo "{filename:\"".$newFile."\"}";
    echo "success:::$newFile:::$xmlString";
}
    fclose($handle);    
}
?>
`
Run Code Online (Sandbox Code Playgroud)

php coldfusion

2
推荐指数
1
解决办法
401
查看次数

过度重新抓取ColdFusion动态页面

使用ColdFusion和serverside包含的人在动态页面上存在过度重新抓取的问题,因为没有datelastmodfied集,这会导致过多的服务器流量.如果你愿意,你可以笑,但是当我告诉他们解决方案是在页面上设置最后修改日期时,我会得到一个普遍的呵呵?你是怎样做的?我原先打开谷歌的一个案例,并被告知是的,这是一个页面日期问题.我已经做了很多研究,试图找到如何在标题中编写代码,以及我发现的大多数关于从页面中提取日期的内容.我确定可以使用CFHEADER标签完成.我只是不确定实施.我可以告诉他们添加类似的东西

<cfheader NAME="datelastmodified="Mon, 01 Feb 2013 08:00:00 GMT">
Run Code Online (Sandbox Code Playgroud)

就足够了?如果需要日期名称,则不确定日期格式.我试过让其中一位网站管理员试试这个吗?不,我没有.我想知道,在占用太多时间之前,我至少在正确的轨道上.到目前为止,除了使用robots.txt阻止爬行或沿着这些线路的东西之外,他们都没有自己提出解决方案.任何建议或想法将不胜感激.

coldfusion

2
推荐指数
1
解决办法
123
查看次数