我很好奇,PHP中的序列化是否有大小限制.是否可以使用5,000个键和值序列化数组,以便将其存储到缓存中?
我希望在社交网站上缓存用户朋友列表,缓存需要经常更新,但几乎每个页面加载都需要读取缓存.
在单个服务器设置上,我假设APC会比memcache更好.
我目前使用
base64_encode()来编码用户的密码,这很好用,因为它允许我简单地使用base64decode()来解密一个单词的密码,如果他们丢失密码就发送给那里的电子邮件.
我一直在阅读密码,很多人似乎都说你应该使用sha1()来编码密码.我全都是为了提高系统的安全性但是如果我转换为使用shal()那么我将无法向用户发送丢失的密码.
你用什么?你能给我一些建议吗?有没有办法解密可读密码来通过电子邮件发送给用户?
当我输入这个问题时,我只是记得有些论坛在请求时没有给你发密码,而是发送一个特殊的链接来重新设置你的密码,我猜这是因为他们无法解密你的密码?
//what I use now
$password_encoded = base64_encode($password);
//what I am considering using
$password_encoded = sha1($password);
Run Code Online (Sandbox Code Playgroud) 比特和位掩码是我一直在努力理解的东西,但我想学习如何将它们用于PHP中的设置和类似的东西.
我终于找到了一个声称要做到这一点的课程,而且正如我所知,它似乎有效,但我不确定这是否是最好的方法.我将使用下面的示例代码发布类文件,以便按工作顺序显示它.
如果您有经验,请告诉我是否可以改进,性能或其他任何方面.我真的很想学习这个,而且我一直在阅读它,但到目前为止我很难掌握它.
班级...
<?php
class bitmask
{
/**
* This array is used to represent the users permission in usable format.
*
* You can change remove or add valuesto suit your needs.
* Just ensure that each element defaults to false. Once you have started storing
* users permsisions a change to the order of this array will cause the
* permissions to be incorectly interpreted.
*
* @type Associtive array
*/
public $permissions = array(
"read" => …
Run Code Online (Sandbox Code Playgroud) 我一直试图找出在PHP中使用位掩码或位域的最佳方法,现在我的应用程序的不同区域用于不同的用户设置和权限.我到目前为止最远的是来自PHP中用于设置的Stack Overflow post Bitmask中的svens贡献的类?.我稍微对它进行了修改,将其更改为使用类常量而不是DEFINE,并确保get方法仅传递给int.我还有一些示例代码来测试下面的类的功能.
我正在寻找任何建议/代码来进一步改进这个类,以便它可以在我的应用程序中用于设置和某些情况下的用户权限.
mcrumley在下面的评论中回答
另外,我对我的常数的编号有疑问.在这种类型的其他类和代码示例中,它将以2的幂列出事物.但是,即使我对常数1,2,3,4,5,6进行编号,它似乎也能正常工作.而不是1,2,4,8,16等.所以有人也可以澄清我是否应该改变我的常数?
一些想法......我真的想找出一种方法来扩展这个类,以便它可以很容易地与其他类一起使用.假设我有User
班级和Messages
班级.无论是User
和Messages
类将扩展此类,并能够使用位掩码为他们设置/权限(与其他班级后沿).那么也许应该更改当前的类常量,以便可以传入它们或其他选项?我真的不想在站点/脚本的其他部分定义(define('PERM_READ',1);)并且希望保持它有点封装,但也是灵活的; 我对这些想法持开放态度.我希望这是坚如磐石和灵活的,就像我说要与其他多个类一起使用设置或权限.可能应该使用某种阵列?来自上一个问题链接的@Svens发表评论"实施一些自动化的getter/setter或者ArrayAccess以获得更多的优点. - svens"您对这样的事情有什么看法?
请尽可能包含示例源代码.
<?php
class BitField {
const PERM_READ = 0;
const PERM_WRITE = 1;
const PERM_ADMIN = 2;
const PERM_ADMIN2 = 3;
const PERM_ADMIN3 = 4;
private $value;
public function __construct($value=0) {
$this->value = $value;
}
public function getValue() {
return $this->value;
}
public function get($n) {
if (is_int($n)) {
return ($this->value & (1 << $n)) != 0; …
Run Code Online (Sandbox Code Playgroud) 对不起,如果这是基本的,我正在尝试尽可能多地学习PHP中的OO,我正在慢慢学习如何使用它(非常有限).
所以我想知道__autoload()是否对PHP操作码缓存有任何影响?
可能重复:
为什么一些有经验的程序员会在变量之前写入比较值?
我只是对此感到好奇:在我研究过的大多数框架/开源项目中,我经常看到这样的代码......
<?php
if (null === self::$_instance) {
self::$_instance = new self();
}
Run Code Online (Sandbox Code Playgroud)
特别是这条线......
if (null === self::$_instance) {
Run Code Online (Sandbox Code Playgroud)
为什么null
在if
声明的第一个参数中使用而不是相反?...
if (self::$_instance === null) {
Run Code Online (Sandbox Code Playgroud)
我意识到可能没有性能提升或类似的东西.这只是一种偏好还是我忽略了某种编码标准?
这是我过去遇到麻烦的事情,这是我的想法,所以我做了一个简单的sprite图像测试,希望得到一些答案.
如果您在http://dabblet.com/gist/2263037查看我的代码和演示
你会看到我有一个使用背景图像的简单div
在DIV下面,我有相同的div,但这次我尝试使用CSS Sprite图像
所以我的问题是,是否可以使用此精灵图像复制第一个DIV的外观,或者是精灵图像需要更改?
没有Sprite图像
/* Notice wrapper with Single Image */
.notice-wrap {
margin-top: 10px; padding: 0 .7em;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
border: 1px solid #CD0A0A;
background: #B81900 url(http://www.getklok.com/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;
}
Run Code Online (Sandbox Code Playgroud)
使用Sprite图像
/* Notice wrapper with SPRITE Image */
.notice-wrap-sprite {
margin-top: 10px; padding: 0 .7em;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
border: 1px solid #CD0A0A;
background: #fff url(http://f.cl.ly/items/2P1u2S1a132R0B3d2s08/test-sprite.png) repeat;
background-position: 0 -52px;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="notice-wrap">
<p><strong>NOTICE:</strong> This is just …
Run Code Online (Sandbox Code Playgroud) 有谁知道PHP的getimagesize()函数返回的第3个值的所有可能结果?示例此代码将返回:
$imageinfo['2'] = 2;
对于jpg
图像,$imageinfo['2'] = 3;
对于png
图像,$imageinfo['2'] = 0;
对于gif
图像.上面的数字可能不正确,但你明白了.
我无法在php.net或其他任何地方找到第3个值的所有可能结果的列表.
$imageinfo = getimagesize($imageurl);
$image_type = $imageinfo['2'];
Run Code Online (Sandbox Code Playgroud) 假设我将我的整个网站CSS放在1个css文件中,所以它相当大,我想知道一个页面是否使用3个类,如下所示从服务器请求3个图像,让我们说有50个这样的东西在整个css文件中,每个人都可以从服务器调用/请求,还是只需要页面需要的3个?
background-image:url(http://localhost/images/btn3.gif);
Run Code Online (Sandbox Code Playgroud) 我正在使用注册表单,我正在使用PHP,在我的处理部分我运行一些代码,如果提交的项目失败,我将其添加到errors数组.
下面是一段代码,我正处于需要找到最佳方法来确定是否应该触发错误的地方.
因此,如果错误数组中设置了一个值,那么我需要重定向并执行其他一些操作.
我正在考虑使用isset
或者其他is_array
但我不认为这是答案,因为我设置数组使用**$signup_errors = array()**
不会这样做is_array
是真的吗?
任何人都可以建议一个好方法吗?
//at the beginning I set the error array
$signup_errors = array();
// I then add items to the error array as needed like this...
$signup_errors['captcha'] = 'Please Enter the Correct Security Code';
Run Code Online (Sandbox Code Playgroud) php ×8
bitmask ×2
css ×2
arrays ×1
autoload ×1
class-design ×1
getimagesize ×1
html ×1
opcode-cache ×1
passwords ×1
syntax ×1