小编Jul*_*sen的帖子

OpCache - 了解缓存如何工作,每个用户或每个资源?

我正在使用OpCache,因为它附带了PHP 5.5.x并且我对它非常满意,但我想调整它的内存设置,这就是我的理解很短的地方......

当给定用户请求给定页面时,服务器应答此请求,调用PHP解释器,解释器将操作码存储在缓存中,提供内容,以及相关内容.下次请求进入时,如果请求的操作码相同,缓存就会启动,但我的问题是......

缓存是基于每个用户(并且缓存的操作码仅适用于此特定用户的请求)或者是否适用于使用这些缓存操作码的任何请求?

我想做的是调整OpCache以使用一定数量的内存,但我不知道内存池是基于每个用户工作还是像共享资源池.

你能给我一个提示吗?

php caching opcache

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

PHP&HTML5:带有<meta>标签或header()函数的UTF-8文档声明?

我正在尝试优化我的框架处理HTML5页面生成的方式.现在,我所做的是<meta charset="utf-8"/><head>标签之后插入一个权利,因此它是第一个要指定的元素(所以当我传递<title>标签和其余页面元素时,它已被定义为以UTF-8编码).

问题是我正在阅读一些关于网站性能优化的书籍,其中大多数建议通过Content-type声明来指定编码,而不是插入<meta>块.

关于字符编码检测的W3C文档(第8.2.2.1节)基本上说,如果用户通过用户代理声明了对内容类型的覆盖,则HTTP头优先于任何显式声明EXCEPT.

然而,W3C验证器(这就是我用来调试我的HTML代码输出的原因)并没有抱怨,但警告我没有<meta charset="utf-8"/>阻止,因此鼓励我把它(它说它特别推荐如果渲染的页面是被保存,但情况并非如此,但仍然......让我感到困惑.

问题是......如何确保页面始终指定为UTF-8编码?我必须声明HTTP标头和<meta>标签或只是HTTP标头吗?

php html5 header utf-8

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

PHP - $ total = 0和var $ total = 0.哪个是正确的?

可能重复:
PHP关键字'var'有什么作用?

我知道这听起来像一个奇怪的问题,但这是我无法摆脱的问题.我正在定义一个类来处理发票行和它们各自的税收,我现在的'原型'看起来像这样:

    public function getRate() {
        if (!empty($this->lines)) {
            var $total = 0;

            foreach ($this->lines as $line) {
                $total += $line->subtotal;
            }

            return ['title' => $this->attributes['title'], 'value' => $this->attributes['value'], 'type' => $this->attributes['type'], 'total' => $total];
        }
    }
Run Code Online (Sandbox Code Playgroud)

$ total只是计算行的总数(在这种情况下是每个税率),所以在我的想法中,一旦函数返回数组就必须丢弃它.问题是......哪个更合适(更正确)?$total = 0;还是var $total = 0;

php var class

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

javascript文档中的javascript和css,最佳实践?

我需要为我正在使用的框架实现javascript和css资源,但我有一个很大的担忧.

如果您查看当前的网站,如Facebook,Google,Youtube和其他顶级网站,他们的源代码会在代码的各个位置显示他们对javascript的使用.我想到的第一个问题是......不应该在文档开头分配javascript源文件吗?您可以/应该能够将javascript命令放在脚本块中,但是......源文件也是如此?

我一直在阅读的书籍(作为最佳实践,我猜)所有源文件都应该在head部分中分配,同时在关闭body部分之前将所有代码块替换到页面的末尾(如果可能的话).

同样适用于CSS.我已经看到页面在页面中间找到源文件包含的页面,而正常的声明是在开头包含所有css文件(因为它比并行包含更有效,因为它们并行加载办法).

在我的想法中,如果我要按照我一直在阅读的书籍,源文件(包括javascript和css)总是在顶部,脚本块(如果可能的话)转到文档的底部,CSS包含是要在适当的位置避免(除非你想使用scope属性或者它是html标签内的样式声明,在可能的情况下也应该避免).

是对的吗?

javascript css html5 include

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

具有命名参数的VSO语句VS问号参数

我有一个用于数据库管理的类,我的一个子类(定义查询的类)是这样定义的(只是一个示例,许多其他函数实际上被剥离用于测试目的):

namespace Tests\SQL\Arguments {
    // SQL query
    class Query {
        public $attributes;

        // constructor for this object
        public function __construct() {
            if ($arguments = func_get_args()) {
                $this->attributes["query"] = current($arguments);

                if (sizeof($arguments) > 1) {
                    $this->attributes["parameters"] = array_slice($arguments, 1, sizeof($arguments));
                }

                return $this;
            }
        }
    }

    $query = new Query("INSERT INTO `clients/history` (`date`,`client`,`ammount`,`status`) VALUES (?,?,?,?);", date("Y-m-d H:i:s"), 57, 17852.25, "A");
    print_r($query);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我自动获取函数参数,因此我可以在构造时轻松地将查询与其参数分开.除了批量INSERT/UPDATE/DELETE操作,我想提供一些安全性,比如防止SQL注入和其他事情.

我的问题是......鉴于这种结构,当我传递这种结构时(只是一个简单的例子,它将以不同的方式运行,但这一个暂时有效):

$this->queries["clients/history"]->execute($this->attributes["query"], $this->attributes["parameters"]);
Run Code Online (Sandbox Code Playgroud)

使用命名参数(:date,:client,:ammount,:status)或使用问号参数会有什么不同(?,?,?,?)吗?

编辑 - 更好的解释

对不起我的问题带来的(明显的)模糊不清.我的意图是有一个类似于sprintf的机制,但是,我只是以一种单独的方式存储查询和参数,而不是存储一个包含所有参数的字符串.

这只是Query类.还有QueryGroup类(用于存储组中的查询),Manager类(存储和管理所有数据库连接)和Connection类(它负责将给定数据库连接的所有查询和查询组保存在一起).

关于命名参数,我发现我正在使用的方法没有问题,因为这就像我说的那样,就像 …

php pdo

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

如何在 Google BigQuery 中创建或替换表后立即执行 INSERT INTO 语句

我试图在创建后立即用一些数据填充新创建的表,就像在 MySQL 或 PostgreSQL 等常规 DBMS 中所做的那样。

但是,即使我用分号来分隔语句,它也会抱怨 CREATE OR REPLACE 语句之后的 INSERT 标记。

这就是我想要执行的:

#standardSQL
CREATE OR REPLACE TABLE `foo.bar.months` (text STRING, number INT64);
INSERT INTO `foo.bar.months` (text, number) VALUES ('Jan', 1), ('Feb', 2), ('Mar', 3), ('Apr', 4), ('May', 5), ('Jun', 6), ('Jul', 7), ('Aug', 8), ('Sep', 9), ('Oct', 10), ('Nov', 11), ('Dec', 12);
Run Code Online (Sandbox Code Playgroud)

如果我注释第二条语句并执行第一条语句,然后执行相反的操作(注释第一条语句并取消注释第二条语句并执行它),它就会起作用。它创建表,然后填充它。只是...我想一次性完成这一切。

我怎样才能做到这一点?

google-bigquery

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

标签 统计

php ×4

html5 ×2

caching ×1

class ×1

css ×1

google-bigquery ×1

header ×1

include ×1

javascript ×1

opcache ×1

pdo ×1

utf-8 ×1

var ×1