我正在尝试找到一个工具来检查python中的编码风格.
对于PHP,我看到有代码嗅探器,以及Drupal使用的一个小的perl脚本.是否有这样的python代码工具?
我们考虑以下代码:
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:
Helloobj1:(refcount = 1,is_ref = 0)= class a {public $ var1 =(refcount = 1,is_ref = 0)='Hello'}
逐一:
实例化到$ obj1之后:
obj1:(refcount = 1,is_ref …
我想使用SHA512来存储密码.要做到这一点,其中openssl_digest
,hash
和hash_hmac
我应该使用,为什么?
SALT
和HMAC
?有什么区别?
我刚刚读到HMAC是建立在哈希函数之上的.
所以SHA512+SALT+HMAC
真的有必要SHA512+SALT
或者SHA512+HMAC
?
我有一个非常简单的辅助函数来为传统的普通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个问号.
session_start();
if (!session_is_registered(user)) {
header("Location: login.php");
die();
}
Run Code Online (Sandbox Code Playgroud)
由于session_is_registered()
被弃用,这样做的正确方法是什么?
为什么这行会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) 我经常发现自己做这样的快速检查:
if (!eregi('.php', $fileName)) {
$filename .= '.php';
}
Run Code Online (Sandbox Code Playgroud)
但正如eregi()
在PHP 5.3中弃用的那样,代码现在会抛出错误.
还有其他功能的行为完全相同eregi()
吗?我对regexp一无所知,也不想学习,所以preg_match()
等等对我不起作用.
我已经升级到PHP5.5,并在php.ini中现在short_open_tag=off
,我认识到这一点,因为一些文件,现在不能因为运行<?
,而不是<?php
.
现在有两种解决方案可以侦察任何php文件,并将打开的标签更改为<?php
或激活short_open_tag=on
第二个选项是否存在安全问题?
我如何告诉Zend Opcache 不要缓存特定目录中的任何文件.例如/var/www/public_html/devzone/*
我用PHP 5.5.13
用Zend OPcache v7.0.4-dev
php ×9
coding-style ×1
filter-input ×1
goto ×1
hash ×1
mysql ×1
new-operator ×1
opcache ×1
passwords ×1
pdo ×1
python ×1
reference ×1
security ×1
string ×1