PHP 身份证号码验证

2017-12-01 16:47:32

身份证号码的结构: 要进行身份证号码的验证,首先要了解身份证号码的编码规则。我国身份证号码多由若干位数字或者数字与字母混合组成。早期身份证由15位数字构成,这主要是在1980年以前发放的身份证,后来考虑到千年虫问题, 因为15位的身份证号码只能为1900年1月1日到1999年12月31日出生的人编号,所以又增加了18位身份证号码编号规则。1>.18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码;7-14位出生年月日,比如19820426代表1982年4月26日;15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;18位为校验码,0-9和X。2>.15位身份证号码各位的含义: ...

阅读全文

记一次apache错误异常处理

2017-11-07 15:01:00

服务器apache错误日志出现许多类似下面的问题:script not found or unable to stat: /var/www/cgi-bin/test-cgi script not found or unable to stat: /var/www/cgi-bin/test.sh script not found or unable to stat: /var/www/cgi-bin/test-cgi.pl发现httpd.conf中有部分这样配置: # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about tra...

阅读全文

composer install 与 update区别

2017-09-30 11:20:43

1.composer install如果当前目录下存在composer.lock文件,它会从此文件读取依赖版本;如果不存在,则从 composer.json 文件去获取依赖,并在处理完依赖关系后创建 composer.lock 文件。这确保了该库的每个使用者都能得到相同的依赖版本。2.composer update通过 composer.json 文件去获取更新依赖,更新完成后,会更新 composer.lock 文件为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。如果你只是想更新几个包,你可以像这样分别列出它们:composer update vendor/package vendor/newpackage你还可以使用通配符进行批量更新:php composer.phar update vendor/*区别:composer install:(主要)用于生产环境,com...

阅读全文

浏览器兼容性问题解决方案

2017-09-04 16:19:00

普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的。俗话说:没有IE就没有伤害。 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和补充,本帖也会不断更新。 Normalize.css 不同浏览器的默认样式存在差异,可以使用 Normalize.css 抹平这些差异。当然,你也可以定制属于自己业务的 reset.css <link href="https://cdn.bootcss.com/normalize/7.0.0/normalize.min.css" rel="stylesheet"> 简单粗暴法 * { margin: 0; padding: 0; } html5shiv.js 解决 ie9 以下浏览器对 html5 新增标签不识别的问题。 <!--[if lt IE 9]> <script type="text/javascript...

阅读全文

网站优化 - 雅虎34条军规

2017-08-31 17:23:09

 雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像)。 1.Minimize HTTP Requests 减少HTTP请求图片、css、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用 CSS sprites 将小图拼合后利用background来定位。 2.Use a Content Delivery Network 利用CDN技术CDN 确实是好东西,8过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。 3.Add an Expires or a Cache-C...

阅读全文

php多次自动加载冲突或导致后面加载无效

2017-08-18 16:27:00

使用spl_autoload_register自动加载类时,如果存在2个或多次spl_autoload_register时,当第一次自动载入(require_once文件时),如果文件不存在就抛出异常或者终止时,后面的自动加载(spl_autoload_register)就会失效。 php手册上也有类似说明。 例如:function genericAutoload($class) { if (!require_once($class . '.php')) { throw new Exception("Can't require_once!"); } else { return true; } } function secondaryAutoload($class) { require_once('library/' . $class . '.php'); } spl_autoload_register('genericAutoload'); spl_autoload_register('secondaryAutoload');解决方法有两...

阅读全文

营业执照号正则验证

2017-08-18 15:03:00

市面上现在有2中企业营业执照注册号(统一社会信用代码),一种是15位(从2007年开始),一种是18位(从2015年开始)。 先科普下: 三证合一2015年10月1日起,全国开始推行“三证合一,一照一码”登记模式,即将“营业执照、组织机构代码证、税务登记证”三证合为一证,提高市场准入效率。“一照一码”则是在此基础上更进一步,通过“一口受理、并联审批、信息共享、结果互认”,实现由一个部门核发加载统一社会信用代码的营业执照[2]  。 五证合一在企业和农民专业合作社(以下统称“企业”)“三证合一、一照一码”的基础上,2016年10月1日起,全国开始全面实行“五证合一、一照一码”。即将“营业执照、组织机构代码证、税务登记证、社会保险登...

阅读全文

IE不支持javascript的function中有默认值

2017-08-15 10:44:00

IE不支持javascript的function中有默认值覆盖所有IE版本  详情查看:    官方文档如:function func(id = 1){ return id; }在IE下会报缺少")"的错误。还有其它不支持IE8及以下的javascript function 例子:// ============ isArray ===============// // isArray function isArray(value){ return Object.prototype.toString.call(value) == "[object Array]"; } var arr = [1,2,3,4,5]; alert(isArray(arr)); // IE8 及以下不支持 // ============ Date.now() ===============// // Date.now(); IE8及以下不支持,只能自己写一个解决 if(!Date.now){ Date.now = function(){...

阅读全文

laravel 访问频率限制

2017-07-31 11:00:00

频率限制经常用在API中,用于限制独立请求者对特定API的请求频率。 例如,如果设置频率限制为每分钟1000次,如果一分钟内超过这个限制,那么服务器就会返回: 429: Too Many Attempts app/Http/Kernel.php中有默认设置:'api' => [ 'throttle:60,1', 'bindings', ],这是laravel的默认设置,如果需要修改可以改这里,或者在路由上加上:Route::group(['prefix'=>'api','middleware'=>'throttle:5'],function(){ Route::get('users',function(){ return \App\User::all(); }); });详情参考:http://laravelacademy.org/post/3566.htm...

阅读全文

elasticsearch head插件安装

2017-07-12 18:43:36

 注意:在elasticsearch5.x后,elasticsearch-head插件不能放在elasticsearch的 plugins、modules 目录下,不能使用 elasticsearch-plugin install 1.下载elasticsearch后,进入目录,直接启动:bin/elasticsearch -d 2.安装 elasticsearch-head 3.修改 elasticsearch/config/elasticsearch.yml 在elasticsearch.yml中添加:http.cors.enabled: true http.cors.allow-origin: "*" 4.下载 elasticsearch-head 或者 git clone 安装nodejsgit clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start打开http://localhost:9100/ 如果是ubuntu系统,可能启动...

阅读全文

常用正则验证

2017-07-10 14:15:14

手机号码:/^1[34578]\d{9}$/ 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}  如: 0755-5566778 或 021-12345678 Email地址的正则表达式:if (preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $data['email'])) {} 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配中国邮政编码:[1-9]\d{5}(?!\d) 中国邮政编...

阅读全文

laravel 生成中文测试数据

2017-06-23 18:00:54

在做开发是经常要添加一些测试数据,一个个添加未免效率低而且lower好在别人已经造好轮子,使用faker生成测试数据 1.安装:composer require fzaninotto/faker2.在/database/factories/ModelFactory.php里编写数据填充类型 可以按照默认案例编写。默认生成英文数据,如果要中文数据:需设置: $faker = Faker\Factory::create('zh_CN'); 例如:$factory->define(App\Models\Job::class, function ($faker) { $faker = Faker\Factory::create('zh_CN'); return [ 'job_name' => $faker->jobTitle, 'pay_method' => $faker->numberBetween(1, 3), 'salary' => $faker->n...

阅读全文

imagecreatefromjpeg处理图片时内存溢出问题

2017-06-01 11:25:00

有用户反映上传图片失败,于是追根溯源发现是上传图片时内存溢出。可是服务器配置的使用内存是128MB,上传限制是2MB,用户上传的图片只有737KB, 继续往下看,发现在上传图片后生成缩略图时,使用imagecreatefromjpeg这个函数时报的内存溢出, 查看官方文档,才发现imagecreatefromjpeg在动态创建一个新图像时,根据图片的分辨率(宽和高)在内存中生成一个新图像。恍然大悟,虽然用户上传的图片只有737KB,但分辨率却高达7088*4726,使用了159MB内存,超过128MB,很明显会内存溢出。 官方手册:imagecreatefromjpeg — 由文件或 URL 创建一个新图象。imagecreatefromjpeg创建图像时占用内存公式:    总字节数...

阅读全文

php字符编码遇到的坑之mb_strlen

2017-05-31 15:35:00

在一次开发中使用mb_strlen 获取字符串的长度,由于没有设置编码(第二个参数)到线上后,发现mb_strlen在开发环境和线上环境所得结果不一样。 首先想到的是文件编码不一致:由于我的开发环境统一设置为"UTF-8", 于是到线上查看发现该文件也是UTF-8,就郁闷了。 然后想到可能是服务器的apache或php配置与开发环境不一致:果然,开发环境的php配置:default_charset = "UTF-8"线上配置的default_charset被注释掉了。 所以,以后的mb类函数或者是其它编码计算函数必须设置额外的编码参数,比如mb_strlen($string, 'UTF-8');如果没有定义默认编码,php可能会使用默认的编码:ISO-8859-1 解决方法:...

阅读全文

ubuntu win10双系统时间不同步问题

2017-04-02 21:21:00

主要原因是这2个系统使用的时区不同, win10用的rtc (从系统bios获取),ubuntu用的utc(rtc+8) ubuntu中可以使用 timedatectl 查看时间的相关配置  解决方法在ubuntu终端输入:timedatectl set-local-rtc true

阅读全文