我想知道对PHP脚本进行基准测试的最佳方法是什么.无论是cron作业,还是网页或Web服务都无关紧要.
我知道我可以使用microtime但是它真的给了我PHP脚本的实时时间吗?
我想在PHP中测试和基准测试不同的函数,它们做同样的事情.例如,preg_matchvs strpos或domdocumentvs 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左右.
有没有更好的办法?
我在网络日志中有这些网址:
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)
然后我可以循环到该数组以查找重复项或正确验证信息.
我想允许用户根据他们的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在点上爆炸)
有更快的方法吗?谢谢
我在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)
因为第一个只接受字母和数字,它是否会让它更快执行?
我目前使用此代码来阻止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)
有一个卷曲吗?
我正在为我的公司建立一个新系统(灯 - 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部分?
我必须编写一些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)
有没有办法做到这一点,以避免重复?
php ×4
performance ×2
.htaccess ×1
algorithm ×1
arrays ×1
benchmarking ×1
curl ×1
database ×1
filtering ×1
ip ×1
microtime ×1
mod-rewrite ×1
standards ×1
url ×1