小编cla*_*ska的帖子

PHP与JavaScript切换缩进

虽然我意识到每种语言都有自己的缩进惯例,但我不禁对最近发现的东西感到恼火.请考虑PHP手册中的以下代码:

switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
}
Run Code Online (Sandbox Code Playgroud)

请注意,每个案例都是从switch语句缩进的.这是有道理的,因为代码更容易阅读,并且块的主体包含在其中的一个级别.

但是,当我在JSLint中测试等效的JavaScript switch语句时:

switch (i) {
    case "apple":
        alert("i is apple");
        break;
    case "bar":
        alert("i is bar");
        break;
    case "cake":
        alert("i is cake");
        break;
}
Run Code Online (Sandbox Code Playgroud)

...它显示一个错误,告诉我它应该像这样:

switch (i) {
case "apple":
    alert("i is apple");
    break;
case "bar":
    alert("i is bar");
    break;
case "cake":
    alert("i is cake");
    break;
}
Run Code Online (Sandbox Code Playgroud)

这似乎违反直觉,因为现在每个案例都与交换机块本身内联.我无法想象为什么这会被认为更好,更不用说触发错误了.

JSLint是错误的,还是仅仅遵循惯例?如果后者是真的,为什么惯例不能缩小以澄清?

javascript php conventions switch-statement

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

使用 .htaccess / .htpasswd 将 IP 列入白名单

使用以下命令.htaccess,我能够成功限制对具有正确用户名/密码的用户以及来自特定 IP 地址的用户的访问:

AuthType Basic
AuthName "Please enter your password"
AuthUserFile /path/to/.htpasswd

Require valid-user
Order deny,allow
Deny from all

Allow from 123.123.123.123
Satisfy Any
Run Code Online (Sandbox Code Playgroud)

这适用于许多不同的服务器,但是,今天我遇到了一个服务器,它不能100% 工作。用户名/密码正确的用户可以登录,但指定IP的用户则不允许登录,并强制输入密码。

是否有什么因素httpd.conf可能会阻止 IP 白名单发挥作用?我尝试了多种变体并继续得到相同的结果。所有服务器都是 Linux 上的 Apache。

.htaccess .htpasswd

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