PHP技术 php7 新发现之三元运算 ??与?:的区别

三元运算是我个人比较喜欢写的一种方式,书写简单,可读性强。PHP7增加了三元运算新的写法,让我们的语法更简洁。先看一下我以前是这样写的:<?php//正常写法if(isset($_GET[user])){$user=$_GET[user];}else{$user=Guest;}//使用三元运算简写成$user=isset($_GET[user])?$_GET[user]:Guest;PHP7到来了,我们可以这样写了:<?php//php7的写法$user=$_GET[user]??Guest;//等同于$user=isset($_GET[user])?$_GET[user]:Guest;使用两个问号(??)替代isset。表示如果$_GET[user]非空,则$user=$_GET[user],如果$_GET[user]为空,则$user=‘Guest’;&l...

PHP技术 自PHP5.4起可以使用短数组定义语法,用[]替代array()

我以前写的配置文件是酱婶儿的:$_MCONFIG=array(dbhost=>127.0.0.1,//MyCMS数据库服务器(一般为本地localhost)dbuser=>mycms,//MyCMS数据库用户名dbpw=>N2W2l632uepv6q0o,//MyCMS数据库密码dbname=>mycms,//MyCMS数据库名port=>3306,//数据库连接端口tablepre=>mycms_,//MyCMS表名前缀);现在我升级到了最新的PHP7.3X,我写的配置文件可以更好看一点:$_MCONFIG=[dbhost=>127.0.0.1,//MyCMS数据库服务器(一般为本地localhost)dbuser=>mycms,//MyCMS数据库用户名dbpw=>N2W2l632uepv6q0o,//MyCMS数据库密码dbname=>...

PHP技术 PHP利用openssl_encrypt实现数据的加解密

$data=http://www.neter8.com;//加密明文$method=DES-ECB;//加密方法$passwd=110;//加密密钥$options=0;//数据格式选项(可选)$result=openssl_encrypt($data,$method,$passwd,$options);var_dump($result);//string(32)XTEAhRrXSUUaXpFtQ/6xpFkML5cObhCXvar_dump(openssl_decrypt($result,$method,$passwd,0));//string(21)http://www.neter8.com这是快速简单的加密和解密方法。常常用于数据交换防止被窃听。接收端只要密码正确就能还原内容。下面是PHP5.6+的AES认证加密例子,同样的内容每次输出字符都会变化(更安全)。$key=123456;//加密密码$...

PHP技术 __DIR__与dirname(__FILE__)的效率哪个更高?

在很多项目里会发现更多的使用dirname(__FILE__)而不是__DIR__,虽然它们返回的结果是一样的。var_dump(dirname(__FILE__));var_dump(__DIR__);但是,至少有两个区别:__DIR__仅在PHP>=5.3时存在这就是为什么dirname(__FILE__)使用更广泛的原因,更早时候大家只能使用这个,后来的项目为了兼容一些低版本的PHP做出的让步。__DIR__直接使用编译好的内置路径,而dirname(__FILE__)意味着使用函数调用对FILE进行处理,所以,__DIR__是(或者应当是)更快。...

网站运营 终于完成了MyCms 2.3 20191007的开发

MyCms2.3技术亮点:1、全面支持Redis,配置信息(系统设置等)、缓存(主要是需要通过MYSQL查询的数据)全部保存到Redis里面,现在就算不生成HTML也支持大并发了。2、升级了缓存系统,减少对HTML生成的依赖。3、由原来的MD5+slat密码保存修改成了主流的password_hash()方式。4、由于升级了更安全的密码保存,本地COOKIE的加解密也可以退休了,现在使用SESSION验证,服务器端保存到Redis里(一切为了大并发)。5、优化了模块代码结构,重复代码率极低,资源占用更少。6、升级了部分功能,后台使用bootstrap4.X完全重构,完美支持移动设备进行管理操作。界面更美观!7、前端使用...

PHP技术 使用Zend Opcache黑名单功能 排除不需要加速的PHP文件

很多时候我们的文件不需要进行ZendOpcache的PHP加速,比如生成的缓存、实时更新的配置文件,计划任务等,在启动了加速后可能会产生异常情况。ZendOpcache给我们提供了一个黑名单功能,可以排除不需要加速的文件或者目录。假设已安装了ZendOpcache并配置成功使用,首先找到PHP.ini的配置文件,搜索opcache.blacklist_filename=去掉前面的分号;如果没有找到,可以手工这个增加参数;OPcache黑名单文件是一个文本文件,其中包含不应加速的文件的名称,每行一个。允许使用通配符,也可以提供前缀。以分号开头的行将被忽略为注释。例如,创建一个新文件:/etc/php7/opcach...

javascript技术 利用jQurty选择器删除手机uc浏览器的底部“猜你喜欢”强制广告...

最近正在开发新的系统后台,使用手机UC测试总会在页面最底部强制插入广告。很是烦人!网上教的方法都是怎样使用设置去关闭广告,但是很多用户并不知道可以关闭UC“猜你喜欢”的广告。所以我使用了几行代码清除。首先需要在body结束之前插入一行HTML代码:<divid=lastOne></div>使用这个代码的目的是为了找到页面的最后一行标识。这行代码以后出现的代码都会被jQury删除掉。UC广告使用了滚动触发的,所以我们需要这个写:$(document).scroll(function(){ $(#lastOne).nextAll().remove();});这样所有lastOne后面的代码都在滚动的...

网站运营 VScode 前端开发利器

我是10多年的Dreamweaver重度使用者,但是今天我终于对Dreamweaver下了手,在键盘上按下了delete键,一入VS深似海从此DW是路人。是的我被VScode的开发方式吸引过去了,我背叛了Dreamweaver,感谢Dreamweaver的10多年陪伴。我甚至也停止使用了PhpStorm,完全转为VS开发PHP,VS有强大的插件功能,可以选择下载自己需要或者喜欢的各种插件来帮助我们更快的开发。大大提升开发效率。我选择VScode主要原因是够小、够快、够方便,还有因为开源、跨平台、很多插件等。可以堪称微软的良心之作,很好的支持GITHUB,更换开发设备无缝切换。VScode使用的一些小技巧:1、多行编...

javascript技术 用于多个广告的轮播JS代码

很多站长都想把收入做到最大化,有的站PV比较高,比如:图片站、小说站、交互性比较强的社交网站等,通过广告轮播的方式可以展示多个广告,甚至放多个联盟的广告来实现网站收益的最大化。varm=3;//轮播放的广告总数varn=Math.floor(Math.random()*m+1);switch(n){ case1: ad=广告内容1;break;//广告1 case2: ad=广告内容2;break;//广告2 case3: ad=广告内容3;break;//广告3}document.write(ad);//输出广告,可以放到HTML适当的位置轮播代码可以是HTML也可以是js代码。...

服务器技术 Linux/CentOS7 Swap扩容的方法

最近上了Redis后非常的吃Swap,内存是128的,Swap在装系统的时候只分了4G,以前没有使用Redis的时候swap完全够用,但现在已不能满足需要,查询资料发现官方推荐的Swap分配:CentOS建议:如果RAM小于2GB,就分配和RAM同等大小的Swap交换空间。如果RAM大于2GB,就分配2GB交换空间Ubuntu考虑到系统需要休眠:如果RAM小于1GB,Swap空间至少要和RAM一样大,甚至是要为RAM的两倍大小如果RAM大于1GB,Swap交换空间应该至少等于RAM大小的平方根,并且最多为RAM大小的两倍如果要休眠,Swap交换大小应该等于RAM的大小加上RAM大小的平方根在RedHatEnterpriseLinux中,以下是设置合适的...

PHP技术 Mysql 5.7以上版本怎么样使用JSON存储数据与查询

由于某些需求,需要在MYSQL里存储json格式的数据。这里建立一个测试表:CREATETABLE`meishi`.`recipes_major`(`id`INT(10)NOTNULLAUTO_INCREMENT,`json`JSONNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDB;然后插入测试数据:INSERTINTO`recipes_major`(`id`,`json`)VALUES(NULL,[{\name\:\牛肉\,\value\:\250g\},{\name\:\土豆\,\value\:\300g\},{\name\:\咖喱\,\value\:\80g\}]);我们就得到了一个使用json存储的表。我们使用命令:SELECT`json`FROM`recipes_major`WHERE`id`=1可以得到以下数据:[{name:牛肉,value:250g},{name:土豆,value:300g},{name:...

服务器技术 解决Redis由于连接过多导致的Uncaught RedisException: Cannot assign requ...

生产服务器在高峰的时候经常报错,查看日志记录为:Redis->connect(127.0.0.1,6379,1)#1{main}thrownin/home/wwwroot/neter8.com/test.phponline9[13-Jun-201911:07:47PRC]PHPFatalerror:UncaughtRedisException:Cannotassignrequestedaddressin/home/wwwroot/neter8.com/test.php:9从网上找了解决办法:执行命令修改如下2个内核参数sysctl-wnet.ipv4.tcp_timestamps=1开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用sysctl-wnet.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAITsockets的快速回收Redis错误:Cannotassignreque...

服务器技术 使用rsync删除海量文件

先建一个空白的目录:mkdir/tmp/empty然后使用下面的命令:rsync--delete-before-d/tmp/empty//要删除的目录地址/不要忘记后面要/结尾。参数说明:–delete-before接收者在传输之前进行删除操作–progress在传输时显示传输过程-a归档模式,表示以递归方式传输文件,并保持所有文件属性-H保持硬连接的文件-v详细输出模式–stats给出某些文件的传输状态为什么rsync能够快速删除大文件?1)rm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。过程:正式删除工作的第一阶段,需要通过getdirentries64调用,...

服务器技术 解决浏览器跨域出现403 Access to Font at https错误

当出现403跨域错误的时候NoAccess-Control-Allow-Originheaderispresentontherequestedresource,需要给Nginx服务器配置响应的header参数:在需要夸域的配置文件上加入以下代码: location/{ add_headerAccess-Control-Allow-Origin*; }服务器默认是不被允许跨域的。给Nginx服务器配置Access-Control-Allow-Origin*后,表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求。也可以把*号替换成为域名如:http://www.neter8.com/这样就只允许http://www.neter8.com/调用这个域名的数据。跨域成功!Nginx允许多个域名跨域访问:*号如果不是我们...

生活琐事 重庆周边可露营的地方

车友不比驴友,可以背起装备走嘿远,出行前90%的人都会问:车能不能开拢?为方便车友,所以我以下推荐的基本是可以开拢或停车后背起装备路程在5分钟以内的景点;重庆可搭帐篷的地方还是比较多,但像梦幻谷那样有山有水有林,可以直接饮用的水,几乎是没有;所以梦幻谷绝对是重庆第一的——露营天堂!(无门票)路书:重庆—南环-—南川—武隆(下道)—仙女山镇—天生三桥—黑桃乡—左到梦幻谷;右到仙女湖;单程200公里左右;适合季节:春、夏、秋;众所周知的原因,也许永远不会再去的:风吹岭草原、马嘴水库,绝对是可以排在...

PHP技术 近期对程序的升级操作,程序升级到了2.1

除了对最新版本的PHP和MYSQL兼容升级以外,程序版本已达到了2.1,从开始写死了模块,现在变成可以对模块的手动增加与删除,对扩展模块的支持意味着程序可以进行各种的扩展操作,比如增加电子商务、美食、音乐、电影等,只需要安装增加的模块就可以了。1、系统核心进行升级,增加了自定义缓存、优化了程序结构、修复了各种BUG。2、系统后台支持了手机版本的兼容,可以通过手机管理网站操作。3、数据库编码由原来的utf-8改成了utf8mb4_unicode_ci,支持手机上的表情发布。4、数据库引擎由原来的MyISAM改为InnoDB,PHP对数据库连接删除了mysql,改为了最新的MySQLi...

服务器技术 github使用详解

安全git命令后,通过cd命令进入要同步的目录。一、进行要git的目录然后对目录进行配置。1、设置用户名:gitconfig--globaluser.nameh***a2、设置邮箱:gitconfig--globaluser.nameh***a@gmail.com3、目录初始化:gitinit4、绑定远程仓库地址:gitremoteaddoriginhttps://github.com/h***a/*s.git这个origin是个别名,用于区别不同的仓库,使用gitremote-v参数查看5、查看状态(本地与远程对比):gitstatus6、增加所有文件进行推送:gitadd*7、可以开始推荐并使用-m给文件写一个推送说明:gitcommit-m提交的注释//-m或者后面的注释,可以忽略。8、开始推送文件到ma...

服务器技术 InnoDB数据备份恢复的正确方式!

备份:mysqldump-uroot-p数据库名>文件名.dump导入:mysql-uroot-p数据库名<文件名.dump以前是myisam直接复制数据库里的文件到新的位置就可以使用了,但是现在使用了InnoDB复制却不行了。使用上面的命令可以热备份。

生活琐事 人体减肥原理分析

做为一个当了10年的深度肥宅,终于在本月觉醒,突发奇想,准备减肥。以前也试过一些方法,比如吃左璇肉碱(对我来说完全没有效果),吃一个月的黄瓜(效果很好,一个月瘦了20斤,但是2周完全反弹回来了)。还有去健身房运动,都以失败告终。我深知我可能用的方法有问题。于是本月开始去了解一些减肥的方法。并从根本分析减肥的原理。大家的共同认识减肥原理是:总摄入热量不能超过身体所代谢的热量,要不然就会产生脂肪。经过一些深入的了解和在自身的试验来看,可能这样的计算方式也是不科学的。而且这样会消磨意志力最终也有可能导致减肥失败。我其实是想寻找一种科学...