我已经构建了一系列字符串函数,它们可以执行各种操作,我注意到我实际上没有任何内部函数检查,以确保变量是一个字符串,然后才能完成它.
因此,在开发过程中的几次,我偶然传递了一些字符串以外的其他内容,从而导致错误.
现在,我想知道这是否是我应该一直这样做的事情.首先检查以确保已发送正确类型的数据/检查可能首先出现问题的事情,以某种方式记录它们,然后如果一切正常,请使用它做一些事情.
这是我应该坚持的吗?
大多数其他 GPG 命令允许您使用 --batch 模式,但在尝试编辑密码短语时似乎并非如此。
你必须跑 gpg --edit-key user
这会打开一个交互式 GPG 提示。
这在我的情况下不起作用,因为我需要能够在没有命令行交互的情况下更改密码。
我发现的最接近的东西是
gpg --batch --passphrase-fd 0 --status-fd 2 --command-fd 0 --edit-key
但这只是在我输入现有密码后给我一个无效命令。
任何建议都非常感谢。
如果我有一个阵列
$places = array('year' => '2012', 'place' => 'school');
Run Code Online (Sandbox Code Playgroud)
有没有办法在PHP中这样做
foreach ($places as $key => $value)
{
$key = $value
}
Run Code Online (Sandbox Code Playgroud)
但是,根据键的名称设置变量.
例如,变量可以这样提供
echo $year;
2012
echo $place;
school
Run Code Online (Sandbox Code Playgroud) 我目前有以下依赖项
i18n (~> 0.6, >= 0.6.4)
Run Code Online (Sandbox Code Playgroud)
我一直在阅读Ruby Gems - 声明依赖项指南
我发现“~> 0.6”部分表示 0.6 到 1.0 之间的任何值 - 如果这是错误的,请纠正我。
但我仍然很困惑,这对于第二个逗号分隔值实际上意味着什么?
一位同事认为这意味着
>= 0.6.4, <= 0.7
Run Code Online (Sandbox Code Playgroud)
但我不太确定。
我正在验证一个表单,根据用户选择的内容提交最多3个不同的ID.
我把它们放到一个数组中:
$submitted_genres = array($_POST['genre1'], $_POST['genre2'], $_POST['genre3']);
Run Code Online (Sandbox Code Playgroud)
我如何检查以确保没有任何数组值彼此相等?
我在 PHP 中捕获异常时遇到问题
这是我的代码。
try {
require $this->get_file_name($action);
}
catch (Exception $e) {
//do something//
}
Run Code Online (Sandbox Code Playgroud)
和被调用的方法
private function get_file_name($action) {
$file = '../private/actions/actions_'.$this->group.'.php';
if (file_exists($file) === false) {
throw new Exception('The file for this '.$action.' was not found.');
}
else {
return $file;
}
}
Run Code Online (Sandbox Code Playgroud)
导致:
Fatal error: Uncaught exception 'Exception' with message $action was not found.'
Exception: The file for this $action was not found.
Run Code Online (Sandbox Code Playgroud)
但是,如果我在函数内部放置一个 try-catch 块并调用该函数,则可以毫无问题地捕获异常。
我究竟做错了什么?
我正在重构大量代码以使其更具可测试性,并且我有一堆依赖于实例化数据库对象的有用函数。
这样的事情:
function id_from_name($table, $name)
{
$db = get_database();
//code that returns an id
}
function username_from_user_id($id)
{
$db = get_database();
//code that returns a username
}
Run Code Online (Sandbox Code Playgroud)
还有更多类似id_exists,id_active等的信息。
现在,我认为这不是正确的选择,因为对象可能应该作为参数传递?但这意味着每次我要使用一个函数时,都要在每个函数中创建并发送一个新对象。
所以,我的问题确实是:我是否应该将这些函数移入可以访问数据库对象的自己的类/库中?我上面显示的示例通常是一种不好的处理方式吗?
我目前正在使用这种方法来检测字符串中是否存在任何中文字符
if (preg_match("/\p{Han}+/u", $str))
{
//made in china
}
Run Code Online (Sandbox Code Playgroud)
工作正常,但我还需要检查完整字符串是否为中文,而不仅仅是检查是否有中文字符.我似乎无法弄清楚如何做到这一点,它可以用preg匹配完成吗?
尝试在一个非常简单的应用程序中获取一些数据库结果.
码
$pdo = new PDO("mysql:host=localhost;dbname=soundinsider", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM users";
$query = $pdo->query($sql);
echo '<pre>';
print_r($query->fetchAll());
Run Code Online (Sandbox Code Playgroud)
这就是输出
Array
(
[0] => Array
(
[user_id] => 1
[0] => 1
[username] => simon
[1] => simon
[email] => madeup
[2] => madeup
)
[1] => Array
(
[user_id] => 2
[0] => 2
[username] => bobwin
[1] => bobwin
[email] => fake@email.com
[2] => fake@email.com
)
)
Run Code Online (Sandbox Code Playgroud)
所以似乎为每个结果创建了一个额外的密钥.当我在一两个月前编码时,情况并非如此.这里有什么问题或者这是现在的PDO行为吗?
$fields = array('timbo', '22', 'norway');
Run Code Online (Sandbox Code Playgroud)
我怎么能根据它的价值单独取消挪威的数组键?
我希望我能正确地说出这个问题!我想检索一个国家的名称,如果它存在于一个字符串中.
$bio = 'A biography about someone from France';
$countries = ['Germany', 'Spain', 'France'];
Run Code Online (Sandbox Code Playgroud)
如何使用countries数组检查字符串中是否存在国家/地区?然后,如果找到匹配,返回它?在这个例子中,我将留下"法国"这个词.