我在Windows上运行Tomcat 6.我有"监控Tomcat"系统托盘图标,它允许我启动和关闭Tomcat,但还有另一个小工具,让我可以在我更改类文件时轻松重新加载我的Web应用程序吗?我知道Tomcat附带的"经理"应用程序有一个重新部署选项,但只是想知道是否有一个本机应用程序可以更快更好地做到这一点?
所以我之前已经完成了这个,对于这样一个看似简单的任务来说,这是一个令人惊讶的丑陋代码.
目标是将任何不可打印的角色翻译成一个.(点).出于我的目的,"可打印"确实排除了最后几个字符string.printable(换行符,制表符等).这是用于打印旧的MS-DOS调试"十六进制转储"格式......或任何类似的东西(其中额外的空格将破坏预期的转储布局).
我知道我可以使用,string.translate()并且要使用它,我需要一个翻译表.所以我用string.maketrans()它.这是我能想到的最好的:
filter = string.maketrans(
string.translate(string.maketrans('',''),
string.maketrans('',''),string.printable[:-5]),
'.'*len(string.translate(string.maketrans('',''),
string.maketrans('',''),string.printable[:-5])))
Run Code Online (Sandbox Code Playgroud)
......这是一个难以理解的混乱(虽然它确实有效).
从那里你可以打电话使用像:
for each_line in sometext:
print string.translate(each_line, filter)
Run Code Online (Sandbox Code Playgroud)
... 而且要快乐.(只要你不看引擎盖).
现在,如果我将这个可怕的表达式分解为单独的语句,它就更具可读性:
ascii = string.maketrans('','') # The whole ASCII character set
nonprintable = string.translate(ascii, ascii, string.printable[:-5]) # Optional delchars argument
filter = string.maketrans(nonprintable, '.' * len(nonprintable))
Run Code Online (Sandbox Code Playgroud)
为了便于阅读,这样做很诱人.
但是,我一直认为必须有一种更优雅的方式来表达这一点!
从手册中,我知道IMAP中有6种不同的传输编码.
此时,我已经创建了这个基本功能:
function translate_imap_body($body, $encoding) {
switch($encoding) {
case 0: return $body;break;
case 1: return $body;break;
case 2: return $body;break;
case 3: return base64_decode($body);break;
case 4: return quoted_printable_decode($body);break;
case 5: return $body;break;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将8位,二进制和其他编码转换回人类可读的消息形式?或者,也许某人有更好的功能来处理这个问题?
我不明白这里发生了什么.从逻辑上讲,这对我没有任何意义.
<?php
$level = 0;
switch ($level) {
case $level > 80: $answer = 'high'; break;
case $level > 60: $answer = 'moderate-to-high'; break;
case $level > 40: $answer = 'moderate'; break;
case $level > 20: $answer = 'low-to-moderate'; break;
default: $answer = 'low'; break;
}
echo $answer;
?>
Run Code Online (Sandbox Code Playgroud)
当$ level == 0时,它返回"high".这对我没有任何意义.有人能解释一下这里发生了什么吗?
我知道在C中比较"字符串"的正确方法是使用strcmp,但现在我尝试将一些字符数组与==运算符进行比较,并得到一些奇怪的结果.
看看下面的代码:
int main()
{
char *s1 = "Andreas";
char *s2 = "Andreas";
char s3[] = "Andreas";
char s4[] = "Andreas";
char *s5 = "Hello";
printf("%d\n", s1 == s2); //1
printf("%d\n", s3 == s4); //0
printf("%d\n", s1 == s5); //0
}
Run Code Online (Sandbox Code Playgroud)
第一个printf正确打印a 1,表示它们不相等.但有人可以向我解释为什么,在比较字符数组时,==返回的是0?
有人可以向我解释为什么第一个printf返回a 1(即,它们相等)并且字符数组返回一个0?
在Perl中可以做这样的事情(我希望语法是正确的......):
$string =~ m/lalala(I want this part)lalala/;
$whatIWant = $1;
Run Code Online (Sandbox Code Playgroud)
我想在Python中做同样的事情,并在括号内获取文本,如$ 1.
关于单元测试jQuery的document.ready function(),我有一个问题.
目前我的代码中有两个场景:
function myFunction()
{
$(document).ready(function() { ... });
}
Run Code Online (Sandbox Code Playgroud)
和:
$(document).ready(function()
{
// some really long setup code here
});
Run Code Online (Sandbox Code Playgroud)
我尝试为第一个场景编写单元测试,但我无法让它运行到document.ready函数中.至于第二个场景,我还没有想出一种方法来测试它(我很难找到一种方法来测试它和语法).
所以假设我无法更改源代码,有没有办法测试这些功能?(假设测试它们是个好主意)
谢谢.
我知道我可以在配置XML中指定它,但我不想为每个控制器都这样做.例如:我有一个没有注入任何依赖项的控制器,但我宁愿不在配置文件中键入XML组件部分或以编程方式注册它.有什么想法,建议,例子吗?感谢您的帮助!
php ×2
python ×2
arrays ×1
asp.net-mvc ×1
c ×1
code-golf ×1
decoding ×1
encoding ×1
git ×1
imap ×1
java ×1
javascript ×1
jquery ×1
nhibernate ×1
perl ×1
regex ×1
tomcat ×1
unit-testing ×1