小编Nik*_*kiC的帖子

用于强制执行python代码样式/标准的工具

我正在尝试找到一个工具来检查python中的编码风格.

对于PHP,我看到有代码嗅探器,以及Drupal使用的一个小的perl脚本.是否有这样的python代码工具?

python coding-style

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

用'new'实例化时到底发生了什么?

我们考虑以下代码:

class a {
    public $var1;
    function disp(){
        echo $this->var1;
        }    
    }

$obj1 = new a;
echo '<br/>After instantiation into $obj1:<br/>';    
xdebug_debug_zval('obj1');  

$obj1->var1 = "Hello ";
echo '<br/><br/>After assigning "Hello" to  $obj->var1:<br/>';
$obj1->disp();

echo "<br/><br/>";  
xdebug_debug_zval('obj1');  
Run Code Online (Sandbox Code Playgroud)

输出:

实例化到$ obj1之后:
obj1:(refcount = 1,is_ref = 0)= class a {public $ var1 =(refcount = 2,is_ref = 0)= NULL}

将"Hello"分配给$ obj-> var1:
Hello

obj1:(refcount = 1,is_ref = 0)= class a {public $ var1 =(refcount = 1,is_ref = 0)='Hello'}

逐一:

实例化到$ obj1之后:
obj1:(refcount = 1,is_ref …

php reference new-operator php-internals

17
推荐指数
1
解决办法
452
查看次数

openssl_digest vs hash vs hash_hmac?SALT和HMAC之间的区别?

我想使用SHA512来存储密码.要做到这一点,其中openssl_digest,hashhash_hmac我应该使用,为什么?


SALTHMAC?有什么区别?


我刚刚读到HMAC是建立在哈希函数之上的.

所以SHA512+SALT+HMAC真的有必要SHA512+SALT或者SHA512+HMAC

php security passwords hash

15
推荐指数
2
解决办法
8369
查看次数

PHP中goto的有效用例是什么?

我知道,还有其他 关于PHP 5.3中引入的语句的问题goto.

但我找不到任何体面的答案,都是"最后的手段","xkcd","邪恶","坏","邪恶!!!".但没有有效的例子.只有没有任何用途的陈述.或者说有一些罕见的用例(再次,没有例子).

所以,问题是:" gotoPHP 中的有效用例是什么?"."是goto邪恶的?"的答案 不受欢迎,将被投票.谢谢 :)

或者有人链接到RFC,其中解释了决定 - 我找不到一个.

php goto

14
推荐指数
2
解决办法
1918
查看次数

使用PDO插入/更新辅助函数

我有一个非常简单的辅助函数来为传统的普通mysql驱动程序用法生成SET语句:

function dbSet($fields) {
  $set='';
  foreach ($fields as $field) {
    if (isset($_POST[$field])) {
      $set.="`$field`='".mysql_real_escape_string($_POST[$field])."', ";
    }
  }
  return substr($set, 0, -2); 
}
Run Code Online (Sandbox Code Playgroud)

像这样用过

$id = intval($_POST['id']);
$fields = explode(" ","name surname lastname address zip fax phone");
$_POST['date'] = $_POST['y']."-".$_POST['m']."-".$_POST['d'];
$query  = "UPDATE $table SET ".dbSet($fields)." stamp=NOW() WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)

它使代码非常干燥,同时也很灵活.

我要问是否有人愿意分享类似的功能,利用PDO预备语句功能?

我仍然怀疑,如何做到这一点.
是否有一种直接而简单的方法来使用PDO预处理语句来插入数据?应该是什么形式?查询构建器助手?还是插入查询助手?它应该采取什么参数?

我希望它可以很容易被用作SO的答案.因为在每个主题中我们都可以看到预备语句的使用建议,但是没有一个好的例子.真实的例子,我的意思是.键入bind_param()20次并不是一个好的编程风格我相信.甚至还有20个问号.

php mysql pdo

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

已弃用的session_is_registered的替代方案

session_start();
if (!session_is_registered(user)) {
    header("Location: login.php");
    die();
}
Run Code Online (Sandbox Code Playgroud)

由于session_is_registered()被弃用,这样做的正确方法是什么?

php

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

PHP filter_input(INPUT_SERVER,'REQUEST_METHOD')返回null?

为什么这行会null在我的实时服务器中返回?

filter_input(INPUT_SERVER, 'REQUEST_METHOD');
Run Code Online (Sandbox Code Playgroud)

实时服务器是php5.5.9

我错过了什么吗?

我以为它用于替换下面的全局方法?

$_SERVER['REQUEST_METHOD'];
Run Code Online (Sandbox Code Playgroud)

一些代码,

public function __construct()
    {
        // Construct other generic data.
        $this->clientRequestMethod = filter_input(INPUT_GET, 'method'); // such as list, add, update, etc
        $this->clientPostMethod = filter_input(INPUT_POST, 'method'); // such as update
        $this->serverRequestMethod = filter_input(INPUT_SERVER, 'REQUEST_METHOD'); //such as get or post
    }


    public function processEntry()
    {

        // Determine the $_SERVER['REQUEST_METHOD'] whether it is post or get.
        if ($this->serverRequestMethod === 'POST' && $this->clientPostMethod != null) 
        {
            $this->processPost();
        }
        else if($this->serverRequestMethod === 'GET' && $this->clientRequestMethod …
Run Code Online (Sandbox Code Playgroud)

php filter-input

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

PHP中eregi()的良好替代品

我经常发现自己做这样的快速检查:

if (!eregi('.php', $fileName)) {
    $filename .= '.php';
}
Run Code Online (Sandbox Code Playgroud)

但正如eregi()在PHP 5.3中弃用的那样,代码现在会抛出错误.

还有其他功能的行为完全相同eregi()吗?我对regexp一无所知,也不想学习,所以preg_match()等等对我不起作用.

php string

12
推荐指数
3
解决办法
4万
查看次数

PHP 5.5 short_open_tag =安全漏洞?

我已经升级到PHP5.5,并在php.ini中现在short_open_tag=off,我认识到这一点,因为一些文件,现在不能因为运行<?,而不是<?php.

现在有两种解决方案可以侦察任何php文件,并将打开的标签更改为<?php或激活short_open_tag=on

第二个选项是否存在安全问题?

php short-open-tags

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

使用Zend Opcache将目录列入黑名单

我如何告诉Zend Opcache 不要缓存特定目录中的任何文件.例如/var/www/public_html/devzone/*

我用PHP 5.5.13Zend OPcache v7.0.4-dev

php zend-framework opcache

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