小编Mar*_*iek的帖子

我可以使用RegEx和VI(或类似的东西)为我自动填充一些文本吗?

注意:我没有开始使用VI,这是我想到的第一件可能能够做到我需要的东西.随意建议任何其他程序.

我有一个有近100个字段的表单,我想用PHP自动填充.我知道如何进行自动填充,但我想避免手动将所需的文本添加到100个字段.

我是否可以通过自动方式获取文本:

<input name="riskRating" id="riskRating" type="text" />
Run Code Online (Sandbox Code Playgroud)

并将其更改为:

<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" />
Run Code Online (Sandbox Code Playgroud)

请记住,我想要对近100个领域这样做.我试图避免去每个字段,粘贴PHP代码并手动更改变量名称.

我希望那里有一位VI大师知道他/她的头顶.

html php vi

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

使用奇怪的查询优化器行为加入SQLServer中的视图

我有一个复杂的视图,用于拉出一个主键列表,指示表中已在两个时间点之间修改的行.

此视图必须查询13个相关表并查看changelog表以确定实体是否"脏".

即使完成了所有这些,也可以进行简单的查询:

select * from vwDirtyEntities;
Run Code Online (Sandbox Code Playgroud)

只需2秒.

但是,如果我将其更改为

select
    e.Name
from 
    Entities e 
         inner join vwDirtyEntities de
             on e.Entity_ID = de.Entity_ID
Run Code Online (Sandbox Code Playgroud)

这需要1.5分钟.

但是,如果我这样做:

declare @dirtyEntities table
(
    Entity_id uniqueidentifier;
)

insert into @dirtyEntities 
   select * from vwDirtyEntities;


select
   e.Name
from 
    Entities e 
        inner join @dirtyEntities de
           on e.Entity_ID = de.Entity_ID
Run Code Online (Sandbox Code Playgroud)

我在2秒钟内得到了相同的结果.

这让我相信SQLServer在加入实体时正在评估每行的视图,而不是构建一个涉及将上面的单个内连接加到视图中的其他连接的查询计划.

请注意,我想从此视图加入完整的结果集,因为它只过滤掉我想要的内部键.

我知道我可以将它变成物化视图,但是这将涉及到视图及其依赖关系的模式绑定,我不喜欢维护索引会导致的开销(此视图仅针对导出进行查询,而有更多写入到基础表).

因此,除了使用表变量来缓存视图结果之外,还有什么方法可以告诉SQL Server在评估连接时缓存视图?我尝试更改连接顺序(从视图中选择并加入实体),但这没有任何区别.

视图本身也非常高效,并且没有优化空间.

t-sql sql-server views

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

ASPError对象在我的自定义错误页面上不包含任何数据

我在web.config中有以下内容

<httpErrors errorMode="Custom">
    <remove statusCode="500" subStatusCode="-1" />
    <error statusCode="500" prefixLanguageFilePath="" path="/error.asp" responseMode="ExecuteURL" />
</httpErrors>
Run Code Online (Sandbox Code Playgroud)

错误处理正在工作,当发生500错误时,我被发送到my error.asp而不是默认的500错误页面.

问题是没有设置ASPError返回的对象的任何属性Server.GetLastError.

例如,在下面的代码中,错误描述是

dim oErr : set oErr = Server.GetLastError

Response.Write "Error Description:  " & oErr.Description& "<br />"
Run Code Online (Sandbox Code Playgroud)

更新

基于Joel在评论中链接的主题,我已将web.config更新为以下内容:

<httpErrors errorMode="Custom">
    <remove statusCode="500" subStatusCode="100" />
    <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/error.asp" responseMode="ExecuteURL" />
</httpErrors>
Run Code Online (Sandbox Code Playgroud)

确实给了我返回的ASPError对象中的数据GetLastError.

现在的问题是我从生成错误的页面的开头获取HTML,然后页面的其余部分是HTML error.asp.

我真的很喜欢重定向到error.asp但改变web.config responseMode="Redirect"似乎不起作用.

vbscript iis-7 asp-classic

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

检查Python字典中的特定键

有几种不同的方法可以检查Python字典是否包含特定的键,即

d = {}

if key in d:

if d.contains(key):

if d.has_key(key):
Run Code Online (Sandbox Code Playgroud)

一种语言允许你以几种不同的方式做同样的事情是愚蠢的,除非每种方法都做了完全不同的事情.有人可以请对比上面的三种技术,它们有何不同?

python

6
推荐指数
3
解决办法
4024
查看次数

svg &lt;path /&gt; 上的参考没有“getTotalLength()”方法

我想创建一个渲染 SVG 路径元素的组件,如下所示:

class Path extends Component {
  constructor(props) {
    super(props);

    this.refCallback = this.refCallback.bind(this);
  }

  refCallback(element) {
    console.log("Element: ", element, element.getTotalLength());
  }

  render() {
    const { data, id } = this.props

    return (
      <path d={ data } id={ id } ref={ this.refCallback } />
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望获取路径的 DOM 节点,然后对其使用“getTotalLength()”方法。但我在控制台中得到路径元素的以下输出:

Element: <path d="M11.859375,0.88671875 C9.10229798,32.1448978 3.72401281,62.1847019 0.921875,92.3632812" id="Path"></path>
Run Code Online (Sandbox Code Playgroud)

对于“element.getTotalLength()”:

Uncaught TypeError: element.getTotalLength is not a function
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它会这样。我期望获取 DOM 元素并使用“getTotalLength()”。

有谁知道我做错了什么?

svg dom reactjs

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

我应该如何测试从DataReader填充列表的方法?

所以我正在研究一些对手动数据库操作很重要的遗留代码.我想在这里保持一些相似的质量,所以我尽可能地去TDD.

我正在处理的代码需要填充,让我们说List<Foo>一个DataReader,它返回一个正常运行的Foo所需的所有字段.但是,如果我想验证代码实际上每个数据库行返回一个列表项,我正在编写看起来像这样的测试代码:

Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 1);
// ....
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 2);
// ....
Expect.Call(reader.Read()).Return(false);
Run Code Online (Sandbox Code Playgroud)

这也是相当乏味而且很容易被打破的.

我应该如何处理这个问题,以便结果不会是一大堆脆弱的测试?

顺便说一句,我目前正在使用Rhino.Mocks,但如果结果足够令人信服我可以改变它.只要替代品不是TypeMock,因为他们的EULA对我的口味有点太可怕了.

编辑:我目前也只限于C#2.

c# tdd unit-testing mocking

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

你如何在PHP中将00:00:00转换为小时,分钟,秒?

我的视频时长以HH:MM:SS格式存储.我想把它显示为HH小时,MM分钟,SS秒.如果小于1,则不应显示小时数.

什么是最好的方法?

php date

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

Javascript Try/Catch

我有一个运行用户生成的正则表达式的函数.但是,如果用户输入了不会运行的正则表达式,则它会停止并翻倒.我已经尝试在Try/Catch块中包装该行但是没有任何反应.

如果它有帮助,我正在运行jQuery但是下面的代码没有它,因为我猜它比那更基础.

编辑:是的,我知道我没有逃避"[",这是故意和问题的重点.我正在接受用户输入,我想找到一种方法来捕捉这种问题,而不会让应用程序掉到脸上.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>Regex</title>

    <script type="text/javascript" charset="utf-8">
        var grep = new RegExp('gr[');

        try
        {
            var results = grep.exec('bob went to town');
        }
        catch (e)
        {
            //Do nothing?
        }

        alert('If you can see this then the script kept going');
    </script>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript regex try-catch

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

如何用准备好的语句创建一个合适的mysqli扩展类?

我已经在网上搜索了一个很好的例子,但我找不到任何东西.

我试图扩展mysqli类来创建一个帮助类,它将抽象出一些复杂性.我想要完成的主要事情之一是使用准备好的陈述.

我真的不知道从哪里开始,或者如何在一个类中正确处理输入和输出.另一个问题是,在使用预准备语句时,我无法将数据作为数组输出.

我真的可以用一个简单的例子来指出我正确的方向.

谢谢!

php mysql sql mysqli class

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

如何在jQuery datepicker中禁用今天之前的日期

如何在今天之前在jQuery datepicker中禁用日期而不使用minDate: 0

我希望在今天之前按照惯例启用日历导航,同时确保用户在今天之前不选择日期.

(即说今天的日期是11Aug11,我希望在禁用之前的所有日期,但仍然允许用户前几个月,几年等)

javascript jquery datepicker

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