小编eri*_*ric的帖子

如何基准测试PHP脚本的效率

我想知道对PHP脚本进行基准测试的最佳方法是什么.无论是cron作业,还是网页或Web服务都无关紧要.

我知道我可以使用microtime但是它真的给了我PHP脚本的实时时间吗?

我想在PHP中测试和基准测试不同的函数,它们做同样的事情.例如,preg_matchvs strposdomdocumentvs preg_match或preg_replace vs str_replace`

网页示例:

<?php
// login.php

$start_time = microtime(TRUE);

session_start(); 
// do all my logic etc...

$end_time = microtime(TRUE);

echo $end_time - $start_time;
Run Code Online (Sandbox Code Playgroud)

这将输出:0.0146126717(一直变化 - 但这是我得到的最后一个).这意味着执行PHP脚本需要0.015左右.

有没有更好的办法?

php performance benchmarking microtime

120
推荐指数
5
解决办法
8万
查看次数

PHP网址到数组

我在网络日志中有这些网址:

http://www.domain.com/page?s=194&client=151678&m=a4a&v=1&g=54
http://www.domain.com/page?s=51&client=617171&m=b4z&v=8&g=97
Run Code Online (Sandbox Code Playgroud)

如何在PHP中的数组中转换此URL我将有一个这样的数组

array(
 'page' => array(
   's' => 194,
   'client' => 151678
   'm' => 'a4a',
   'v' => 1,
   'g' => 54
 )
 etc..
)
Run Code Online (Sandbox Code Playgroud)

然后我可以循环到该数组以查找重复项或正确验证信息.

php arrays url

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

PHP IP过滤

我想允许用户根据他们的IP地址过滤他们的登录(我将实现的用户偏好中的新设置).

因此,如果具有特定IP登录且没有限制的用户,则登录成功.

在任何其他情况下,我在想这个

如果用户选择他的完整IP,如67.31.85.47并且他有这个IP,那么如果用户选择67.31.85.*并且拥有此IP则登录是好的,那么如果用户选择67.31则登录是好的..如果用户选择67,则拥有此IP然后登录是好的..*并拥有此IP然后登录是好的任何其他情况它是无效的

用户最多可以选择5个IP限制.例如:

67.31.*.*
167.77.47.*
62.11.28.28
25.57.*.*
169.*.*.*
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用爆炸来剥离IP,然后与他设置的所有限制进行比较.这可能很慢,因为我必须检查5次*4(4 = IP在点上爆炸)

有更快的方法吗?谢谢

php ip filtering

19
推荐指数
2
解决办法
4815
查看次数

.htaccess mod_rewrite性能

我在SOF上搜索了很多关于.htaccess和mod_rewrite的内容,我希望表现明智哪一个更快:

RewriteRule ^([a-z0-9]+)/?$ index.php?id=$1 [NC,L]
RewriteRule ^(.*)/?$ index.php?id=$1 [NC,L]
RewriteRule ^([^/]*)/?$ index.php?id=$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

因为第一个只接受字母和数字,它是否会让它更快执行?

performance .htaccess mod-rewrite

15
推荐指数
2
解决办法
2101
查看次数

有没有办法阻止CURL在我的网站上获取数据?

我目前使用此代码来阻止wget和libwww

Options +FollowSymlinks  
RewriteEngine On  
RewriteBase /  
SetEnvIfNoCase User-Agent "^Wget" bad_user
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user
Deny from env=bad_user
Run Code Online (Sandbox Code Playgroud)

有一个卷曲吗?

php curl

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

数据库列和外键规范化

我正在为我的公司建立一个新系统(灯 - ubuntu服务器,php 5.3,mysql 5.5,apache 2,redis)(比如版本2.0)

我想做对,让它变得更好.

我想使用innodb,我想知道命名列和外键是否有标准.

例如:

table_a
 table_a_id
 table_a_name
 etc...
Run Code Online (Sandbox Code Playgroud)

这种方式当你离开加入它很容易区分,但如果你有很长的名字,编写SQL可能会很痛苦.

table_a
 id
 name
 etc...
Run Code Online (Sandbox Code Playgroud)

这样,表格很容易理解,但每次离开连接时都必须使用别名或表名.

命名数据库规范化的database.table.column部分?

database standards normalization

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

确定达到分数所需的投票顺序的算法

我必须编写一些PHP代码来确定可能的stackoverflow分数.

当用户注册时,他获得1点声望(让我们称之为POR).

从这里开始,我必须找出可能的POR值,直到用户达到100 POR

例:

user1 = 1 (registration) + 10 (good answer) - 2 (bad answer) = 9 POR
user2 = 1 (registration) + 5 (good question) + 10 (good answer) = 16 POR
Run Code Online (Sandbox Code Playgroud)

可能的选择是:

+10 good answer
+5 good question
-2 bad answer/question
Run Code Online (Sandbox Code Playgroud)

我想做的是:

until 100 POR and start from 1
 for all 3 possibilites
  choose a random posibility and append the current score with - and the actual score
 end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,以避免重复?

algorithm

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