我注意到在PHP正则表达式库中有ereg和preg之间的选择.有什么不同?是一个比另一个更快,如果是这样,为什么不慢的被弃用?
是否有任何情况下使用一个而不是另一个?
我是jQuery的新手,我写了一个简单的函数来检查每个按键的密码强度.
这个想法是每次用户输入一个角色时,评估内容以测试他们输入的密码的强度......我相信每个人之前都看过这些.
无论如何,我使用的逻辑是没有密码以值1开头.当使用小写字符时,分数增加到2.当使用数字时,分数再次增加1,对于大写时相同使用字符,密码长度为5个或更多字符时使用.
返回的是密码的强度,每次按下一个键时,从1到5的值.
所以,关于我的问题.我这样做的方式似乎并不像jQuery那样...几乎就像我可能刚刚完成了直接的javascript.我也想知道我的逻辑.我做过什么或忽略了什么吗?聪明人比我自己的任何建议?
任何建议或意见将不胜感激.
$(document).ready(function(){
$("#pass_strength").keyup(function() {
var strength = 1;
/*length 5 characters or more*/
if(this.value.length >= 5) {
strength++;
}
/*contains lowercase characters*/
if(this.value.match(/[a-z]+/)) {
strength++;
}
/*contains digits*/
if(this.value.match(/[0-9]+/)) {
strength++;
}
/*contains uppercase characters*/
if(this.value.match(/[A-Z]+/)) {
strength++;
}
alert(strength);
});
});
Run Code Online (Sandbox Code Playgroud) 好的我需要根据一些用户输入构建一个查询来过滤结果.
查询基本上是这样的:
SELECT * FROM my_table ORDER BY ordering_fld;
Run Code Online (Sandbox Code Playgroud)
有四个文本框,用户可以选择过滤数据,这意味着我必须为所使用的第一个过滤器动态构建一个"WHERE"子句,然后为输入的每个后续过滤器创建"AND"子句.
因为我懒得这样做,所以我只是将每个过滤器都设置为"AND"子句,并在默认情况下在查询中放置一个"WHERE 1"子句.
所以现在我有:
SELECT * FROM my_table WHERE 1 {AND filters} ORDER BY ordering_fld;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我做过一些会对我的查询性能产生负面影响的事情,或者以任何我应该远程担心的方式错误地解决其他问题吗?
我在本地运行WAMP,但连接到远程MySQL数据库.PHP的本地版本是最新的5.3.0.
其中一个远程数据库,版本5.0.45工作正常.但是,我正在尝试连接的另一个远程数据库,即版本5.0.22在死亡之前抛出以下错误:
警告:mysql_connect()[function.mysql-connect]:OK数据包比预期的短6个字节.PID = 5880 in ...
警告:mysql_connect()[function.mysql-connect]:mysqlnd无法使用旧身份验证连接到MySQL 4.1+ ...
WTF?
更新:
恢复到PHP 5.2.*即低于5.3.0的任何内容都可以完全解决问题.只要我没有运行5.3.0,我就可以连接到两个数据库.我不确定这种奇怪的解释是什么.
我刚刚"完成"在PHP中编写一个相对复杂的Web服务.由于最后一刻的请求,更改,附件,通常情况下,代码库现在有点混乱.
我尝试尽可能轻松地编写代码并以最大化性能的方式编写代码.
因此,我没有使用像Zend这样的任何框架或任何像Doctrine这样的ORM.
我想知道是否存在任何框架或设计模式仅用于在PHP中构建API/Web服务?
我正在考虑一个重构器,我想确保现在我确切地知道我能够正确地构建这个东西.
我想为一个新项目克隆一个现有的git repo.克隆后,代码应独立于原始开发.我也想在GITHUB上主持新项目.
我的工作流程:
但之后我的'克隆'与Github上的基础仓库连接.我想将更改推送到新的Github Repo instad
我新增了它的类似'fork',但它对我不起作用,就像Github上的用户一样.
正如你们中的一些人所知,在MySQL中使用LIMIT关键字并不妨碍它阅读前面的记录.
例如:
SELECT * FROM my_table LIMIT 10000, 20;
Run Code Online (Sandbox Code Playgroud)
意味着MySQL仍将读取前10,000条记录,并在生成我们追踪的20条记录之前抛弃它们.
因此,在对大型数据集进行分页时,高页码意味着加载时间过长.
有没有人知道任何现有的分页类/技术/方法可以以更有效的方式对大型数据集进行分页,即不依赖于LIMIT MySQL关键字?
在PHP中,如果可能的话,因为这是我公司的首选武器.
干杯.
我在rails应用程序中遇到错误.
捆绑的mysql.rb驱动程序已从Rails 2.2中删除.请安装mysql gem并再试一次:gem install mysql.
当我尝试做宝石安装mysql它仍然无法正常工作,我得到这个错误.
警告:安装到〜/ .gem,因为/Library/Ruby/Gems/1.8和/ usr/bin都不可写.警告:您的PATH中没有/Users/bartligthart/.gem/ruby/1.8/bin,不会运行gem可执行文件.
我也尝试了这个,但它没有用
sudo gem install mysql - --with-mysql-config≡/ usr/local/mysql/bin/mysql_config
我该怎么做才能安装mysql?
我刚刚完成了简单的聊天客户端 socket.io 教程,并且正在使用 Chrome WebSocket 检查器检查浏览器和 Node.js 服务器 Web 套接字之间的消息。消息前面有数字前缀,如下面的屏幕截图所示。
正如你所看到的,有一些消息只有“2”和“3”,在我的发出旁边有 42 秒来回。他们的意思是什么?是否有我应该熟悉的主要消息类型列表,以便我可以了解如何调试 Web 套接字?
在字符串上使用md5始终生成字母数字加密结果,即:无符号.
但是,当我使用php crypt()函数,特别是CRYPT_MD5(并且它已打开,我已检查过)时,它返回的假定md5哈希看起来不像md5哈希.
例如:
如果我md5字符串'密码',我得到:
$pass = md5('password');
echo $pass;
//5f4dcc3b5aa765d61d8327deb882cf99
Run Code Online (Sandbox Code Playgroud)
如果我使用CRYPT_MD5,它由'$ 1 $'前缀表示,'$'后缀表示盐为'salt':
$pass = crypt('password', '$1$salt$');
echo $pass;
//$1$salt$qJH7.N4xYta3aEG/dfqo/0
Run Code Online (Sandbox Code Playgroud)
现在,使用的算法和盐按预期显示,'$ 1 $'表示使用了CRYPT_MD5,盐在$符号之间显示为'盐'.
但是..在最后一个$符号之后的哈希密码看起来不像md5 ......它有斜线和全停.
为什么这样哈希呢?这不是真正的md5吗?
请问你是否需要我澄清这些.啊.
php ×5
mysql ×4
javascript ×2
logic ×2
passwords ×2
api ×1
debugging ×1
frameworks ×1
git ×1
github ×1
hash ×1
jquery ×1
node.js ×1
optimization ×1
pagination ×1
pcre ×1
performance ×1
posix-ere ×1
regex ×1
security ×1
sockets ×1
sql ×1
web-services ×1
websocket ×1