Tag: PHP的

相当于PHP的RVM?

我似乎无法迅速find切换PHP版本的方法。 有什么相当于Ruby的Ruby版本pipe理器? 我需要在OS X上的5.3和5.2之间切换。

@在PHP中意味着什么?

可能重复: 参考 – 这个符号在PHP中意味着什么? 我想知道什么@意味着在PHP语言。 我见过有人在用 $connect = @mysql_query('sql query here'); 不知道为什么。 有人能为我解释吗?

不直观的expression评估与增量

对于下面的代码 <?php $a=1; $b=$a++; var_dump($b); $a=1; $b=$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a+$a+$a++; var_dump($b); 我获得了这个结果: int(1) int(3) int(3) int(4) int(5) 我预计1,2,3,4,5而不是1,3,3,4,5。 为什么在$a=1; $b=$a+$a++; $a=1; $b=$a+$a++; 我们获得$b=3 ? PHP 7.1.5-1 + deb.sury.org〜xenial + 1(cli)(built:May 11 2017 14:07:52)(NTS)

什么encryptionalgorithm最适合encryptioncookie?

由于这个问题比较stream行,所以我认为给它一个更新是很有用的。 让我强调AviD给这个问题的正确答案 : 你不应该在你的cookie中存储任何需要encryption的数据。 相反,在cookie中存储大小适中的(128位/ 16字节)随机密钥,并将要保持安全的信息存储在服务器上(由cookie的密钥标识)。 我正在寻找关于encryptioncookies的“最好的”encryptionalgorithm的信息。 我有以下要求: 它一定是快的 encryption和解密的数据将(几乎)完成每一个请求 它将在小数据集上运行,通常是大约100个字符或更less的string 它必须是安全的,但它不像我们正在确保银行交易 我们需要能够解密这些信息,以便SHA1等等。 现在我读了Blowfish是快速和安全的,我已经读了AES是快速和安全的。 随着河豚具有较小的块大小。 我认为这两种algorithm都提供了足够的安全性? 所以速度会成为决定性的因素。 但是我真的不知道这些algorithm是否适合小string,以及是否有更好的algorithm来encryptioncookie。 所以我的问题是: 什么encryptionalgorithm最适合encryptioncookie数据? 更新 更准确地说,我们要encryption2个cookie:一个带有会话信息,另一个带有“记住我”的信息。 该平台是Linux上的VPS上的PHP作为apache模块。 更新2 我同意Cletus将任何信息存储在cookie中是不安全的。 但是,我们有要求实施“记住我”function。 接受的方法是设置一个cookie。 如果客户提供这个cookie,他/她可以(几乎)相同的权限访问系统,就像他/她提供有效的用户名密码组合一样。 所以我们至less要encryptioncookie中的所有数据,以便: a)恶意用户无法读取其内容, b)恶意用户不能制造自己的cookie或篡改它。 (在我们做任何事情之前,所有来自cookies的数据都经过了消毒和检查的有效性,但这是另一回事) 会话cookie只包含sessionId / timestamp。 它可能可以使用没有encryption,但我认为没有encryption的危害吗? (除了计算时间)。 所以鉴于我们必须在cookie中存储一些数据,encryption它的最好方法是什么? 更新3 对这个问题的回答使我重新考虑了所select的方法。 我确实可以做到这一点,而不需要encryption。 我不应该对数据进行encryption,而应该只发送没有意义的数据而无法猜测 。 不过,我也很茫然: 我认为encryption使我们能够将数据发送到BigBadWorld™,并且仍然(相当)地确信没有人能够读取或篡改数据。 难道那不是encryption的全部? 但是下面的反应会推动:不要相信encryption来实现安全。 我在想什么?

PHP:types提示 – “Closure”和“Callable”之间的区别

我注意到,如果我们期望一些callback函数运行,我可以使用Closure或Callable作为types提示。 例如: function callFunc1(Closure $closure) { $closure(); } function callFunc2(Callable $callback) { $callback(); } $function = function() { echo 'Hello, World!'; }; callFunc1($function); // Hello, World! callFunc2($function); // Hello, World! 题: 这里有什么区别? 换句话说,何时使用Closure以及何时使用Callable OR,它们的用途是相同的?

获取PDF文档中的页数

这个问题是为了参考和比较。 解决方法是下面接受的答案 。 我花了很多时间search一个快速简单,但大多数是准确的方法来获取PDF文档中的页数。 由于我工作的graphics打印和复制公司,与PDF工作了很多,一个文件中的页面数量必须精确知道之前,他们被处理。 PDF文档来自许多不同的客户端,所以它们不是由相同的应用程序生成的和/或不使用相同的压缩方法。 这里有一些答案我觉得不够或者根本就不行 : 使用Imagick (一个PHP扩展) Imagick需要大量的安装,apache需要重新启动,当我最终工作时,花了很长时间来处理(每个文档2-3分钟),并且每个文档总是返回1页(没有看到工作Imagick迄今的副本),所以我把它扔了。 这是与getNumberImages()和identifyImage()方法。 使用FPDI (一个PHP库) FPDI易于使用和安装(只是提取文件和调用PHP脚本), 但许多压缩技术不受FPDI支持。 然后它返回一个错误: FPDF错误:此文档(test_1.pdf)可能使用FPDI附带的免费parsing器不支持的压缩技术。 打开一个stream并使用正则expression式进行search: 这将打开一个stream中的PDF文件,并search某种types的string,包含pagecount或类似的东西。 $f = "test1.pdf"; $stream = fopen($f, "r"); $content = fread ($stream, filesize($f)); if(!$stream || !$content) return 0; $count = 0; // Regular Expressions found by Googling (all linked to SO answers): $regex = "/\/Count\s+(\d+)/"; $regex2 […]

怎样才能在PHP语言规范中做一个操作符?

在http://php.net/manual/en/language.operators.precedence.php网页上,第二高优先级包含一个名为[的左关联运算符。 我不明白这一点。 它是[用于访问/修改数组条目,如在$myArray[23] ? 我无法想象任何需要知道其他操作符的“优先级”的代码片段,或者[有用的结合性]。

MongoDB和CodeIgniter

任何人都可以帮助我指向一个教程,库等,这将允许我从CodeIgniter与MongoDB的工作?

在PHP中强制释放内存

在一个PHP程序中,我依次读取一堆文件(使用file_get_contents ), gzdecode它们进行json_decode对结果进行json_decodeparsing,分析内容,把大部分内容扔掉,并在数组中存储大约1%。 不幸的是,每次迭代(我遍历包含文件名的数组)时,似乎有一些内存丢失(根据memory_get_peak_usage ,每次大约2-10 MB)。 我有双重和三重检查我的代码,我没有存储循环中的无用数据(和所需的数据几乎不超过10MB总体),但我经常重写(实际上,数组中的string)。 显然,PHP没有正确释放内存,因此使用越来越多的内存,直到达到极限。 有没有办法强制垃圾收集? 或者至less要找出内存在哪里? 在此先感谢,德米特里

从PHP的date时间获取年/月/日?

我用date('w', timestamp)和date('w', timestamp)来知道几个月的日子, date('n', timestamp)等等。 现在我正在使用date时间,我想知道从date时间获取一天,一个月等等的function。 PS:我知道我可以在SQL查询中使用UNIX_TIMESTAMP() ,但是我更喜欢避免在代码中使用时间戳。