小编irc*_*ell的帖子

方法和功能有什么区别?

方法和函数有什么区别?是方法返回值而函数不返回?

php

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

PHP中while(true)和for(;;)之间有什么区别?

有没有之间的PHP任何差异while(true)for(;;)除了语法和可读性?

编辑:我不认为这是重复 - 我想知道PHP特有的答案.就发动机而言,有什么真正的区别吗?他们编译成同样的东西吗?他们有同等的表现吗?

编辑2:我也不会认为相对表现和相关的OpCodes是基于意见.可读性存在意见空间,但这显然不是问题.

php for-loop infinite-loop while-loop php-internals

42
推荐指数
1
解决办法
2820
查看次数

许多哈希迭代:每次都附加盐?

我已经长时间使用了无盐的md5/sha1,但由于这种方法不太安全(并且随着时间的推移变得越来越不安全)我决定切换到盐渍的sha512.此外,我想通过使用许多迭代(例如100)来减慢散列的生成.

我的问题是我是应该在每次迭代时添加盐还是在开始时只添加一次.以下是两个可能的代码:

每次追加:

// some nice big salt
$salt = hash($algorithm, $salt);

// apply $algorithm $runs times for slowdown
while ($runs--) {
    $string = hash($algorithm, $string . $salt, $raw);
}

return $string;
Run Code Online (Sandbox Code Playgroud)

追加一次:

// add some nice big salt
$string .= hash($algorithm, $salt);

// apply $algorithm $runs times for slowdown
while ($runs--) {
    $string = hash($algorithm, $string, $raw);
}

return $string;
Run Code Online (Sandbox Code Playgroud)

我首先想要使用第二个版本(追加一次)但后来发现每次添加盐的一些脚本.

所以,我想知道每次添加它是否会增加哈希的强度.例如,攻击者是否有可能找到一种聪明的方法来创建一个100XSha512函数,这比简单地执行sha512 100倍?

php security passwords cryptography

36
推荐指数
2
解决办法
5942
查看次数

创建一个随机显示符合指定正则表达式的文本的应用程序

好吧,所以本着Code-Golf的精神,我在这里尝试新的东西:Code-Bowling.

在高尔夫中,你试图获得最低分(最小的应用,最优雅的等).在鲍灵,你试图获得最高分.因此,如果您遵循,Code-Bowling挑战的目标是制作最大,最卑鄙,最难维护的代码仍然能够满足挑战的要求.然而,仅仅为了它而使源更长是没有意义的.它似乎需要增加的长度来自设计而不仅仅是填充.

这是挑战:

用您选择的语言编写一个程序,创建一行文本输出并终止.创建的输出必须与此正则表达式匹配:

/^Good (Morning|Afternoon|Evening|Night)$/
Run Code Online (Sandbox Code Playgroud)

输出可能是随机的(使用语言或您自己的实现)或混乱(确定性,但不是平凡的).

language-agnostic string random

32
推荐指数
7
解决办法
4170
查看次数

PDO :: exec()或PDO :: query()?

我曾经把它作为传递给PDO构造函数的选项之一(第4个参数):

$aOptions[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
Run Code Online (Sandbox Code Playgroud)

但是刚发现由于某些bug,它在Windows上的某些php版本上无效(在5.3中不起作用).

现在我需要运行SET NAMES utf8任何一个$pdo->exec("SET NAMES utf8");

要么 $pdo->query("SET NAMES utf8");

在实例化pdo对象之后.那么,我应该使用哪一个 - exec()或query()?

php pdo utf-8

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

为什么你不能继承一个尚未定义的类继承自一个尚未定义的类?

我研究类编译,它的序列和逻辑.

如果我在简单父级之前声明一个类:

 class First extends Second{}
 class Second{}
Run Code Online (Sandbox Code Playgroud)

这将工作正常.查看PHP版本的实例.

但是,如果父类还有一些尚未声明的父类(扩展或实现),如下例所示:

class First extends Second{}
class Second extends Third{}
class Third{}
Run Code Online (Sandbox Code Playgroud)

我会有一个错误:

致命错误:找不到"第二级"......

查看PHP版本的实例.

那么,为什么在第二个例子中它找不到Second类?也许php无法编译这个类因为它还需要编译Third类,还是什么?

我试图找出为什么在第一个例子中,PHP编译类第二,但如果它将有一些父类,它不会.我研究了很多,但没有确切的.

  • 我不是试图以这种方式编写代码,但在这个例子中,我试图理解编译及其序列是如何工作的.

php inheritance php-internals

28
推荐指数
1
解决办法
905
查看次数

正则表达式检测无效的UTF-8字符串

在PHP中,我们可以mb_check_encoding()用来确定字符串是否是有效的UTF-8.但这不是一个可移植的解决方案,因为它需要编译和启用mbstring扩展.此外,它不会告诉我们哪个字符无效.

是否有正则表达式(或其他100%可移植方法)可以匹配给定字符串中的无效UTF-8字节.这样,如果需要,可以替换这些字节(保留二进制信息,例如在构建包含二进制数据的测试输出xml文件时).因此,将字符转换为UTF-8将丢失信息.所以,我们可能想转换:

"foo" . chr(128) . chr(255)
Run Code Online (Sandbox Code Playgroud)

"foo<128><255>"
Run Code Online (Sandbox Code Playgroud)

所以只是"检测"字符串不够好,我们需要能够检测哪些字符无效.

php regex validation utf-8

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

编码cookie使其不会被欺骗或读取等

我正在编写一个PHP应用程序.我想将用户登录信息存储在cookie中,这样用户就无需在每次访问时登录.

我想对它们进行编码或对它们进行模糊处理,以便它们不会被读取或篡改.

做这个的最好方式是什么?

更新:

我不打算将密码存储在cookie中,只是一个用户ID,以便我知道它们是谁,但我想要对其进行编码或加密,这样就没有人可以欺骗其他用户

php security cookies obfuscation session

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

批量重命名文件夹中的文件 - PHP

我在一个文件夹中有1000个图像,在所有图像中都有SKU #word.举些例子

WV1716BNSKU#.zoom.1.jpg
WV1716BLSKU#.zoom.3.jpg
Run Code Online (Sandbox Code Playgroud)

我需要做的是读取所有文件名并将其重命名为以下内​​容

WV1716BN.zoom.1.jpg
WV1716BL.zoom.3.jpg
Run Code Online (Sandbox Code Playgroud)

所以从文件名中删除SKU#,在PHP中可以进行批量重命名吗?

php

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

如何检查float是否可以精确表示为整数

我正在寻找一种合理有效的方法来确定浮点值(double)是否可以由整数数据类型(long,64位)精确表示.

我最初的想法是检查指数是否0(或更确切地说127).但这不会起作用,因为2.0e = 1 m = 1 ......

基本上,我被卡住了.我有一种感觉,我可以使用位掩码做到这一点,但我现在还没有理解如何做到这一点.

那么我怎样才能检查一个double是否完全可以表示为long?

谢谢

c double ieee-754

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