小编Jas*_*vis的帖子

在PHP中序列化一个大型数组?

我很好奇,PHP中的序列化是否有大小限制.是否可以使用5,000个键和值序列化数组,以便将其存储到缓存中?

我希望在社交网站上缓存用户朋友列表,缓存需要经常更新,但几乎每个页面加载都需要读取缓存.

在单个服务器设置上,我假设APC会比memcache更好.

php serialization

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

在PHP中编码密码的最佳方法

我目前使用
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 passwords

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

PHP中的位掩码用于设置?

比特和位掩码是我一直在努力理解的东西,但我想学习如何将它们用于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 bitmask

14
推荐指数
2
解决办法
9625
查看次数

改进这个PHP位域类的设置/权限?

我一直试图找出在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班级.无论是UserMessages类将扩展此类,并能够使用位掩码为他们设置/权限(与其他班级后沿).那么也许应该更改当前的类常量,以便可以传入它们或其他选项?我真的不想在站点/脚本的其他部分定义(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 class-design bit-manipulation bitmask

14
推荐指数
3
解决办法
5453
查看次数

PHP操作码缓存是否与__autoload一起使用?

对不起,如果这是基本的,我正在尝试尽可能多地学习PHP中的OO,我正在慢慢学习如何使用它(非常有限).

所以我想知道__autoload()是否对PHP操作码缓存有任何影响?

php opcode-cache autoload

13
推荐指数
2
解决办法
3947
查看次数

在PHP中首先使用null有什么好处吗?

可能重复:
为什么一些有经验的程序员会在变量之前写入比较值?

我只是对此感到好奇:在我研究过的大多数框架/开源项目中,我经常看到这样的代码......

<?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)

为什么nullif声明的第一个参数中使用而不是相反?...

if (self::$_instance === null) {
Run Code Online (Sandbox Code Playgroud)

我意识到可能没有性能提升或类似的东西.这只是一种偏好还是我忽略了某种编码标准?

php syntax

12
推荐指数
2
解决办法
846
查看次数

如何使用CSS精灵重复背景图像?

这是我过去遇到麻烦的事情,这是我的想法,所以我做了一个简单的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)

html css

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

PHP getimagesize()返回什么样的文件类型?

有谁知道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)

php getimagesize

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

加载文件时,加载CSS文件中的每个图像都会加载吗?

假设我将我的整个网站CSS放在1个css文件中,所以它相当大,我想知道一个页面是否使用3个类,如下所示从服务器请求3个图像,让我们说有50个这样的东西在整个css文件中,每个人都可以从服务器调用/请求,还是只需要页面需要的3个?

background-image:url(http://localhost/images/btn3.gif);
Run Code Online (Sandbox Code Playgroud)

css

11
推荐指数
4
解决办法
1391
查看次数

如何检查PHP数组是否设置了任何值?

我正在使用注册表单,我正在使用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 arrays

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