小编Dan*_*Dan的帖子

PHP缓存 - 在数据库中保存或创建文件更快吗?

我目前正在缓存动态生成的PHP页面,方法是将它们保存到具有到期时间字段的数据库中.如果再次请求该页面,程序将检查要提供的页面的未过期缓存版本,并且只有在找不到该页面时才重新生成该页面.

这很好 - 但是它会减少服务器上的负载以将缓存的页面保存为文件而不是保存到数据库中吗?我可以在文件中使用命名约定来处理到期时间.

如果从文件而不是数据库读取/写入更快,更少服务器负担,我将切换到那.有谁知道哪种更快/最佳做法?

php mysql caching

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

MySQL在新的XAMPP安装中查询速度极慢

我刚刚重新安装了Windows 7,我正试图让我的开发环境重新启动并运行.XAMPP安装正常,我的应用程序在htdocs中,所有数据库都已导入正常.我可以在phpMyAdmin中查看它们,一切看起来都完好无损.

尝试运行应用程序时,查询速度很慢,大多数页面在所有查询完成之前都会超时.

例如,此计算机可以在3秒之前生成的页面,现在最多30秒,页面超时.

这是一个XAMPP安装1.7.7,但我已经尝试回滚到他们的旧版本并获得相同的结果.

日志文件中没有任何内容,因为它实际上并没有错误输出,它只是非常缓慢地执行查询.

即使通过phpMyAdmin导航数据库也需要大约3-10秒来加载页面,而以前只是即时.所以这消除了我的应用程序(自从它以前很快就开始工作时也没有改变).

有什么想法可能导致新的xampp安装中的这个大幅放缓?在httpd.conf,php.ini或my.ini中有什么东西我可能已经安装了新安装,现在可能导致数据库访问速度慢吗?

谢谢!

mysql xampp

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

如何捕获PHP exec发出的命令的多行输出?

我试图在PHP中执行系统命令并捕获那些输出覆盖多行的命令的输出.我正在使用exec(),但它似乎只返回一行生成输出的命令的值.

例如,如果我在命令行运行日期,我得到:

 Wed May 15 15:07:32 EST 2013
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,如果我使用此作为exec从PHP运行此命令...

exec("date",  $exec_results);
Run Code Online (Sandbox Code Playgroud)

...然后$ exec_results的值变成......

Array ( [0] => Wed May 15 15:07:32 EST 2013 )
Run Code Online (Sandbox Code Playgroud)

但是,当我从命令行运行时,我得到了这个......

real 0m0.000s
user 0m0.000s
sys  0m0.000s
Run Code Online (Sandbox Code Playgroud)

...但是当我用PHP做这个...

exec("time",  $exec_results);
Run Code Online (Sandbox Code Playgroud)

... $ exec_results的值为空:

Array( )
Run Code Online (Sandbox Code Playgroud)

我实际上并不需要在我的应用程序中运行日期或时间,但这些只是命令行上的单行与多行输出似乎如何改变返回PHP的示例.

文件说:

如果输出参数存在,那么指定的数组将填充命令的每一行输出.

那么为什么$ exec_results数组没有被命令行中运行time命令时看到的所有行填充?

注意 - 我已将命令行条目作为apache用户运行以排除权限.

php exec command-line-interface

7
推荐指数
3
解决办法
7731
查看次数

Javascript Regex - 9位数字

我试图在Javascript中验证包含9位数字的变量.这应该是基本的,但由于某种原因,这是失败的:

    var test = "123123123";
    var pattern = new RegExp("/\d{9}/");

    if(test.match(pattern))
    {
        //This code never executes
    }
    else
    {
        //This code is always executing
        alert('no match!'); 
    }
Run Code Online (Sandbox Code Playgroud)

谁能明白为什么我没有比赛?

我也尝试使用以下整数进行类型转换测试:

test = Number(test);
Run Code Online (Sandbox Code Playgroud)

...但是这不起作用,因为它必须是一个支持.match方法的String.

javascript regex

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

MySQL Regex - 查找字段中连续10个数字的位置

我需要查找字段中连续有10个数字的记录.例如1234567890,8884265555等.该字段也将包含文本,因此我需要查看字段中是否存在任何10位数字符串.

我到目前为止......

SELECT * FROM `comments` WHERE detail REGEXP '[0-9]{10}'
Run Code Online (Sandbox Code Playgroud)

我返回的是字段中任何地方有10个数字而不是连续的所有数字.我正在尝试检测电话号码.谢谢!

regex mysql

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

权限被拒绝尝试使用PHP打开另一个系统用户的目录

我在user1的目录中有一个php脚本,我在尝试打开另一个用户的目录时被拒绝.

所以剧本就在

/home/user1/script.php
Run Code Online (Sandbox Code Playgroud)

而我正试图打开

/home/user2/uploadedfiles/
Run Code Online (Sandbox Code Playgroud)

这是在CentOS linux中.我用过

chmod -R 777 /home/user2/uploadedfiles/
Run Code Online (Sandbox Code Playgroud)

并确认权限更改已通过运行ls -l生效.别担心我不会把它留在777上,我只是试图让它工作起来.

PHP脚本是:

opendir(/home/user2/uploadedfiles/)
Run Code Online (Sandbox Code Playgroud)

哪个回报:

[function.opendir]: failed to open dir: Permission denied
Run Code Online (Sandbox Code Playgroud)

我希望user2能够FTP一些文件,但不想让他们访问user1的文件夹,这是该网站的位置.这就是为什么有两个帐户,而user1的脚本正试图访问上传的user2文件.也许我有这个部分错了?有没有更好的方法来创建一个新的Linux帐户到FTP到user1的目录中的文件夹,但没有触及其他任何东西?

谢谢!:)

php linux

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

PHP正则表达为3位数(正好)从6开始

我正在尝试编写一个PHP正则表达式来查找只有3位数字的数字并以6开头.所以应该没有其他符号 - 只是一个3位数字.我知道

^6
Run Code Online (Sandbox Code Playgroud)

将验证它是否以6引导,以下将验证它是否正好是3位数

^\d{3}$
Run Code Online (Sandbox Code Playgroud)

但我找不到将这两个表达式组合成一个正则表达式的方法.有谁知道如何组合表达式?谢谢!

php regex

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

标签 统计

php ×4

mysql ×3

regex ×3

caching ×1

command-line-interface ×1

exec ×1

javascript ×1

linux ×1

xampp ×1