小编Row*_*wan的帖子

使用Doctrine 2检查重复键

在进行刷新之前,是否有一种简单的方法可以检查Doctrine 2的重复键?

doctrine doctrine-orm

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

PHP用双引号括起一个字符串

我试图用双引号将用户输入的字符串换行输出,但我想确保我不会在字符串的任何一端使用双引号.例如,如果用户发布

"你好"

我不想把它变成

""你好""

我可以使用下面的代码相当容易地做到这一点,但是我担心如果我循环遍历很多字符串,这可能会变慢.

$string = '"'.trim($string,'"').'"';
Run Code Online (Sandbox Code Playgroud)

如果有人有更好的方法做到这一点,那就太好了.同样,如果有人能证实我的方式没问题,我会很高兴.

谢谢

php string optimization

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

将频繁访问的数据存储在文件而不是MySQL中

我正在研究PHP内容管理系统,并且在测试中已经注意到,几乎每个页面都会查询很多系统的MySQL表,但很少写入.我想知道的是,随着网站流量的增加,这将开始在数据库上占据重要地位,我该如何解决/阻止这种情况?

我最初的想法是开始在文件中存储一些更静态的数据(使用PHP序列化)但这实际上是否减少了服务器负载?我担心的是,我只是将高负载从数据库传输到文件系统!

如果有人能够提供更好的方法,那就太棒了.如果数据量本身有很大影响,我会详细介绍下面我将要存储的一些数据:

  • 完整的国家名单(包括ISO国家代码)
  • 网站选项(皮肤,管理员电子邮件,支持网址等)
  • 用户组(包括权限)

php database filesystems optimization caching

6
推荐指数
2
解决办法
798
查看次数

spl_object_hash for PHP <5.2(对象实例的唯一ID)

我正在尝试在PHP 5+中获取对象实例的唯一ID.

该函数spl_object_hash()可从PHP 5.2获得,但我想知道是否有旧的PHP版本的解决方法.

php.net上的评论中有几个函数,但它们并不适合我.第一个(简化):

function spl_object_hash($object){
    if (is_object($object)){
        return md5((string)$object);
        }
    return null;
    }
Run Code Online (Sandbox Code Playgroud)

不适用于本机对象(如DOMDocument),第二个:

function spl_object_hash($object){
    if (is_object($object)){
        ob_start();
        var_dump($object);
        $dump = ob_get_contents();
        ob_end_clean();
        if (preg_match('/^object\(([a-z0-9_]+)\)\#(\d)+/i', $dump, $match)) {
            return md5($match[1] . $match[2]);
            }
        }
    return null;
    }
Run Code Online (Sandbox Code Playgroud)

看起来它可能是一个主要的性能破坏者!

有人有什么东西吗?

php spl

5
推荐指数
1
解决办法
3937
查看次数

PHP isset($ this)并在静态和对象上下文中使用相同的对象方法

我正在研究一个需要通过静态函数调用和对象方法访问的类.我发现的一件事是我在多个函数中复制逻辑.

简化示例:

class Configurable{

    protected $configurations = array();

    protected static $static_configurations = array();

    public function configure($name, $value){

        // ...lots of validation logic...

        $this->configurations[$name] = $value;

        }

     public static function static_configure($name, $value){

        // ...lots of validation logic (repeated)...

        self::$static_configurations[$name] = $value;

        }

    }
Run Code Online (Sandbox Code Playgroud)

我已经找到了解决方案,但感觉非常脏:

class Configurable{

    protected $configurations = array();

    protected static $static_configurations = array();

    public function configure($name, $value){

        // ...lots of validation logic...

        if (isset($this)){
            $this->configurations[$name] = $value;
            }
        else{
            self::$static_configurations[$name] = $value;
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

我也需要静态功能,以便我可以在整个应用程序中设置配置.此外,这种技术的好处是我可以在两个范围中使用相同的方法名称.

这样的测试范围有问题吗?性能问题,前向兼容性问题等.它在PHP 5.2上都适用于我,我不需要支持<5.

php oop static scope isset

5
推荐指数
1
解决办法
3609
查看次数

仅修剪字符串中第一个和最后一个字符(PHP)

这是我可以一起破解的东西,但我想知道是否有人对我的问题有一个干净的解决方案.我扔在一起的东西不一定非常简洁或快速!

我有这样的字符串///hello/world///.我只需要删除第一个和最后一个斜杠,没有其他斜杠,所以我得到一个像这样的字符串//hello/world//.

PHP trim是不对的:表演trim($string, '/')将返回hello/world.

需要注意的一点是,字符串在开头或结尾不一定有任何斜杠.以下是我希望在不同字符串中发生的一些示例:

///hello/world/// > //hello/world//
/hello/world/// > hello/world//
hello/world/ > hello/world
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

php string trim

2
推荐指数
1
解决办法
3784
查看次数

AS3检查类是否扩展了另一个类

在AS3中,我试图检查一个对象是一个实例,还是扩展一个特定的类.if (object is ClassName)如果对象是实例,则使用类似的工作,ClassName但如果它是扩展 的类的实例则不使用ClassName.

伪代码示例:

class Foo {}
class Bar extends Foo {}

var object = new Bar();

if (object is Foo){ /* not executed */ }
if (object is Foo){ /* is executed */ }
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

class Foo {}
class Bar extends Foo {}

var object = new Bar();

if (object is Foo){ /* is executed */ }
Run Code Online (Sandbox Code Playgroud)

任何人的想法?

flash inheritance actionscript actionscript-3

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