摘要:
php对象复制、clone、浅复制与深复制实例详解
一、用clone(克隆)来复制对象
$obj1 = new Object();
$obj2 = clone $obj1;
clone方法会触发对象里定义的__clone魔术方法
clone操作有一个非常大的缺陷:使用clone操作复制对象时,当被复制的对象有对其它对象的引用的时候,引用的对象将不会被复制。
PHP有串行化(serialize)和反串行化(unserialize)函数,只需要用serialize()将一个对象写入一个流,然后从流中读回对象,那么对象就被复制了。在JAVA语言里面,这个过程叫做“冷藏”和“解冻”。
$obj1 = new Object();
$obj2 = unserialize(serialize($obj1));//序列化然后反序列化
使用此方案时无法触发__clone魔术方法来完成一些附加操作,但会触发被复制对象和所有被引用对象的__sleep和__wakeup魔术方法。
阅读全文
posted @ 2019-12-03 18:49
大自然的流风
阅读(2118)
推荐(0)
摘要:
技术面试常见关键词
阿里Duboo / HSF
腾讯TARS
新浪Motan
头条Kite
谷歌gRPC / Stubby
Apache的Thrift
rpcx
Hash
HashMap
阅读全文
posted @ 2019-12-03 18:44
大自然的流风
阅读(300)
推荐(0)
摘要:
linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行
crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程(有没有在都执行杀进程的命令)才运行,超过20秒没有执行完成就判断为假死异常了,需要删掉再继续运行。这样各种情况都考虑到了。
阅读全文
posted @ 2019-11-29 01:06
大自然的流风
阅读(8338)
推荐(0)
摘要:
mysql用查询结果当删除的判断条件进行删除报错1093 You can't specify target table解决方法
#意思是:在同一语句中,不能先select出同一表中的某些值,再update这个表
#将select出的结果再通过中间表select一遍,可以规避这个错误
#分开两个sql执行正常的语句,只保留最新1000条数据,删掉1000条以前的旧数据
阅读全文
posted @ 2019-11-28 03:08
大自然的流风
阅读(1541)
推荐(0)
摘要:
centos通过yum快速安装JDK1.8
检索1.8的列表:
yum list java-1.8*
安装1.8.0的所有文件:
yum install java-1.8.0-openjdk* -y
出现 Complete!表示安装完成
使用命令检查是否安装成功:
#java -version
不需要对path进行手动设置,已自动设置好了
yum install 了之后,java 是默认下载到 /usr/lib/jvm/ 这个目录下。
# find / -name 'java'
其中启动命令需要用到的两个是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/jre/lib/ext
阅读全文
posted @ 2019-11-26 05:23
大自然的流风
阅读(1617)
推荐(0)
摘要:
crontab运行python不生效,但是手动执行正常的问题和解决方案
linux默认装的是python2.7,安装了其他版本后直接执行没问题,但在crontab里执行不了,需要使用全路径。
使用 whereis python 可以查看python对应版本的执行全路径
阅读全文
posted @ 2019-11-26 05:15
大自然的流风
阅读(3068)
推荐(0)
摘要:
Linux出现You have new mail in /var/spool/mail/root提示,关闭邮件提示的解决方案
有的时候敲一下回车,就出来You have new mail in /var/spool/mail/root的提示。
原因是Linux系统经常会自动发出一些邮件来提醒用户系统中出了哪些问题(收件箱位置:/var/mail/),比如crontab里面的脚本命令执行错误了(sh文件名,python命令没有使用全路径,没有使用后台运行nohup命令等问题导致无法正常执行的报错)。
LINUX会定时查看各种状态做汇总,每经过一段时间会把汇总的信息发送到root的邮箱里。
一般这种情况mail的内容就只是一些正常的系统信息或者是比较重要的错误报告。
centos默认安装有sendmail的,可以使用mail命令查询(要退出时输入q加回车)
如果安装了mutt可以用mutt命令查看mail的内容,没有装用系统命令:cat /var/spool/mail/root查看。
阅读全文
posted @ 2019-11-26 04:59
大自然的流风
阅读(19079)
推荐(1)
摘要:
window10 蓝牙怎么连接音响或蓝牙耳机
1.在电脑上依次点击win图标 右键-->设置,打开系统设置窗口。
2.点击“设备”,在窗口左侧选择“蓝牙”,右侧检查并开启电脑的蓝牙设备开关,
阅读全文
posted @ 2019-11-19 20:18
大自然的流风
阅读(1781)
推荐(0)
摘要:
模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径
模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis等人于1953年提出。1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。
来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
它是基于Monte-Carlo(蒙特卡洛)迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。
常用的智能优化算法
遗传算法(Genetic Algorithm, GA)
模拟退火算法(Simulated Annealing, SA)
禁忌搜索算法(Tabu Search, TS)
神经网络 (Neural Network)
蚁群算法(Ant Colony Optimization,ACO)
爬山
阅读全文
posted @ 2019-11-19 03:42
大自然的流风
阅读(3376)
推荐(2)
摘要:
vue3.0和2.0的区别
Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观
vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快、更小、更易维护、更易于原生、让开发者更轻松;
阅读全文
posted @ 2019-11-16 23:26
大自然的流风
阅读(5866)
推荐(1)
摘要:
轻量级手绘软件openCanvas免费版,手绘板CG手绘软件
手绘软件通俗一点来说就是用手来绘画的软件,应用很宽泛如建筑,服饰陈列设计、橱窗设计、家居软装设计、空间花艺设计、美术、园林、环艺、摄影、工业设计、视觉传达等各个领域,手绘软件其中包含PS,AI或SAI等著名的绘画软件。通过手绘板来画思维导图、流程图、草图是个不错的选择。
对普通使用白板功能画思维导图、流程图的,使用Photoshop软件太大了,打开太占内存了;sai软件也过于专业;window10自带的白板功能(win+w键),但第一次进去要登录微软的账号,经常登录失败,要绑定邮箱,提示各种异常,本人弄了很久才进去,体验非常差,登录进去后再进去倒是比较好用的。
通过搜索轻量级手绘软件最终发现一个不错的软件openCanvas,推荐给大家。
openCanvas免费版(手绘软件) V6.0.12汉化版
OpenCanvas 是一款小巧的 CG 手绘软件,让用户在使用数位板在电脑上绘图时,就像是在纸上手绘一样,可以画出极为细致的图像。
阅读全文
posted @ 2019-11-16 20:38
大自然的流风
阅读(2000)
推荐(0)
摘要:
golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的
使用Golang包依赖管理工具gb替代go来构建项目
这个gb就是一个替代go的build 和 test的工具,可以让项目在任意路径时运行构建
github地址:https://github.com/constabulary/gb
阅读全文
posted @ 2019-11-12 16:44
大自然的流风
阅读(6643)
推荐(0)
摘要:
python中pip添加国内镜像源后显著加速下载
更换pip源到国内镜像,很多国外的库下载非常慢,添加国内镜像后安装下载速度提升非常明显(亲测有些可以由几十kb加速到几MB)
pip国内的一些镜像
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
阅读全文
posted @ 2019-11-04 09:57
大自然的流风
阅读(4460)
推荐(1)
摘要:
php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符
方式一:使用花括号,前缀部分不需要用单引号
$nums10 = 100;
$xxx*${bcount.$nums10}['m54']/$nums10
方式二:使用两个$符,先给key赋值最终的变量名称,后面才当成真正的变量使用。
$nkey = 'bcount'.$nums10;
$xxx*$$nkey['m54']/$nums10
阅读全文
posted @ 2019-11-04 09:53
大自然的流风
阅读(7143)
推荐(0)
摘要:
php取整的几种方式,四舍五入,舍去法取整,进一法取整
方式一:round 对浮点数进行四舍五入
方式二:floor 舍去法取整 语法格式:float floor ( float value )
方式三:ceil 进一法取整 语法格式: float ceil ( float value )
阅读全文
posted @ 2019-11-04 09:42
大自然的流风
阅读(6265)
推荐(0)
摘要:
分享一张有趣的图,当程序员愿天堂没有代码
阅读全文
posted @ 2019-10-17 03:03
大自然的流风
阅读(874)
推荐(0)
摘要:
php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断
实际需求:把sphinx返回的结果放到ssdb缓存里,要考虑到sphinx开始没有数据,挂掉后恢复的情况。
开始实用empty函数发现sphinx挂掉后返回的内容为空,sphinx恢复后也一直进入不了,后面打印出为NUll值加上is_null判断还是不行,如果sphinx为空,ssdb会返回一个false的字符串,不是boolean类型的,empty函数和is_null函数都返回true,所以还必须加上个!='false' 的判断才行。
当结果不符合预期的时候,需要多打印出相关参数来验证代码是否正确,需要打印类型和值出来进行测试,然后查对照表确定。
阅读全文
posted @ 2019-10-17 02:57
大自然的流风
阅读(768)
推荐(0)
摘要:
Linux查看系统当前登录用户的命令,top命令看到users有多个用户登录
作为系统管理员,top命令看到users有多个用户登录,会需要查看下是否被黑客进入了。
用who w users 命令查了,原来top命令出来的多个用户都是root,IP都是同一个,原因是网络不稳定,经常断开自动重连了导致的。
阅读全文
posted @ 2019-09-18 03:27
大自然的流风
阅读(20591)
推荐(0)
摘要:
python如何通过windows命令行运行一个python程序文件?
cmd 进入到py文件对应目录下
或者直接在上面的文件地址栏输入cmd,敲入回车 定位到对应的目录下
输入python xxx.py,可以运行程序
如果无法运行可以在代码的第一行加入:#!usr/bin/python
阅读全文
posted @ 2019-09-07 16:46
大自然的流风
阅读(14024)
推荐(0)
摘要:
php CI如何实现全站静态生成html,动态创建目录
CodeIgniter框架生成HTML的方法
阅读全文
posted @ 2019-08-29 17:42
大自然的流风
阅读(1159)
推荐(0)
摘要:
怎么进入bios设置界面,电脑如何进入BIOS进行设置,怎么进入BIOS的方法集合
开机出现电脑商家图标时,按住F10键进入BIOS界面。
进入BIOS界面一般都是开机后按
阅读全文
posted @ 2019-08-22 17:41
大自然的流风
阅读(102933)
推荐(0)
摘要:
分享几个好用的聚合工具网站,一个网站,解决一堆问题
01 办公聚合工具,Office 在线办公神器——金山文档
网址:https://docs.wps.cn/
通过金山文档小程序,我把文件从微信聊天中直接导入编辑,整个过程十分顺滑。
有电脑可以直接用网页版金山文档继续编辑文件。
出差途中,异地办公,最麻烦的是文档同步。现在有很多协作办公,石墨文档、腾讯文档都可以解决。
这次只是 Word 方案的修改,所以用在线文档就解决了。
如果遇到 PPT 临时修改,再遇上一台完全不熟悉的苹果电脑就需要一款全能办公神器,云端全能办公神器
UZER.ME -- 您的云端超级应用空间
https://uzer.me
访问这个网页,你就像打开了一台电脑,AutoCAD、Excel、PPT、Visio、PS 、Ai 这些软件,点击就能使用。
网页的操作界面和打开电脑使用一模一样。还可以在【文档库】里随时上传下载文件,应急使用简直超出想象!
Office2010去这个网站,随时随地都能用!
好的工具能够极大的节约你的工作时间
阅读全文
posted @ 2019-08-21 16:11
大自然的流风
阅读(9501)
推荐(0)
摘要:
php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpos
实战例子:判断$opennum包含字符串$n1和$n2,同时$n1或$n2至少有一个出现次数大于1
注意:这里一定要使用 !== false 来做判断条件语句, strpos() 如果没有找到字符串则返回 FALSE,
注意:strpos() 的位置是按字节计算的,中文按3个字节计算的。
阅读全文
posted @ 2019-08-20 03:48
大自然的流风
阅读(1431)
推荐(0)
摘要:
php报错Array to string conversion 解决方案,动态输出数据库列名称
问题:在Windows php5.3环境下使用:$keys[0];?> 正常,但到Linux服务器php7.3环境下,报错:Array to string conversion
原因:数组的输出不能使用echo
解决办法:使用遍历输出,或者索引输出(即在key值加上花括号{})
{$keys[0]};?>
或者 {$keys[0]};?>
其中row为数据库查询返回的一条记录,$keys为动态的列名称
阅读全文
posted @ 2019-08-19 06:08
大自然的流风
阅读(7235)
推荐(0)
摘要:
js 某个值在数组中的下标
javascript中知道一个数组中的一个元素的值,如何获取数组下标
JS 获取数组某个元素下标 函数方法
采用prototype原型实现方式,查找元素在数组中的索引值
js查找元素在数组中的位置(index值)
遍历所有数组,当数组中的数值与你期望的数值相同时返回下标即可。
阅读全文
posted @ 2019-08-10 23:26
大自然的流风
阅读(78283)
推荐(0)
摘要:
Linux服务器用postfix 发送邮件延迟 阻塞 被接收方拒绝等问题
postfix如何设置发送邮件延迟通知
1 */1 * * * /bin/bash /home/delete_postfix.sh
加了个定时器,每小时清理一次发送失败的邮件队列了,这样阻塞最多也就阻塞一个小时了
sendmail如果有信件因故延迟发送,每4个小时就会给发送者发信提示信件延迟发送。
postfix能不能设置呢?
在main.cf中设置:
delay_warning_time = 4
因为考虑到信件流量的问题,postfix缺省不发送通知。
阅读全文
posted @ 2019-08-09 03:47
大自然的流风
阅读(2512)
推荐(0)
摘要:
Java执行shell脚本并返回结果两种方法的完整代码
简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用)
Runtime.getRuntime().exec(shell);
执行复杂的shell建议使用String[]方式传递(对外可以封装后也传入String字符串)。
Process process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
阅读全文
posted @ 2019-07-29 01:10
大自然的流风
阅读(29094)
推荐(0)
摘要:
Linux中用postfix搭建邮件服务器实战详解
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。
Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性,因此它是免费的。
postfix的产生是为了替代传统的sendmail。相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。
现在主流邮件服务都在采用postfix. 当需要一个轻量级的的邮件服务器时,postfix也是一种选择。
常见的邮件服务器软件:
sendmail:性能好,设置复杂,适合老手
qmail:体积小260+k ,模块化。需要做二次开发,适合对邮件性能有要求的
postfix:前身是sendmail,postfix原本是sendmail里面的一个模块,红帽6默认安装好postfix
zmailer:近几年才出来的邮件
coremail:国内做的最好的商业平台,运行在linux上
要用java调用shell命令发送邮件请看本人另外一篇博客:
Java执行shell脚本并返回结果两种方法的完整
阅读全文
posted @ 2019-07-28 03:45
大自然的流风
阅读(43274)
推荐(2)
摘要:
js javascript map函数去重功能的使用实例
先上一个实战例子代码
var map = new Map();
for(var i=0; i<=9; i++){
map.set(i,i);
}
//遍历出去重后的元素值
map.forEach((value, key, self) => {
Map是一组键值对的结构,具有极快的查找速度。
阅读全文
posted @ 2019-07-25 18:58
大自然的流风
阅读(7030)
推荐(0)
摘要:
mysql判断是否包含某个字符的方法
用locate 是最快的,like 最慢。position一般
实战例子:
select * from historydata
where locate('0',opennum) and locate('1',opennum)
order by number desc limit 10;
阅读全文
posted @ 2019-07-23 06:06
大自然的流风
阅读(27887)
推荐(2)
摘要:
https申请证书并部署到网站流程,浏览器验证证书流程
1、生成一对秘钥,设公钥为pubk1,私钥为prik1
2、假设发布的网站地址为https://www.example.com
3、生成一个CSR文件(Cerificate Signing Request),该文件内容包括: pubk1,网站地址,以及营业执照等信息,然后将该文件发给CA机构
4、CA机构收到CSR文件后,进行审核,主要检查网站地址的拥有者是否是证书的申请者
5、审核通过后,CA机构生成一对秘钥,假设采用ECDSA签名算法,公钥为pubk2,私钥为prik2。用prik2对CSR文件进行签名得到签名值sigVal,将sigVal附在CSR文件后面形成证书文件caFile,caFile中还要添加CA机构的信息,如: 签名算法,CA机构名称等
6、将证书文件caFile放到网站服务器对应目录下
阅读全文
posted @ 2019-07-19 16:24
大自然的流风
阅读(4192)
推荐(0)
摘要:
需求:php 除10取整,取十位数前面一个数字,百位前两个数字,并把大于2的加红显示
例:0-9,10-19,20-29,30-39,110-119对应为:0 1 2 3 11
实现主要方法:$num = floor($omit/10);
完整实战方法:
阅读全文
posted @ 2019-07-14 12:29
大自然的流风
阅读(1833)
推荐(0)
摘要:
拉开人生距离的是学习力,雷军在一次分享中谈到:拉开人与人差距的,其实是学习力。
因为他能克服每个行业领域专业性带来的壁垒。学习力强的人,可以快速的跨行业跨专业。学习力越强的人,再高的行业壁垒对他来说也是小菜一碟。
哈佛学习力女神 鲁林希:只要你掌握高效学习的规律,你也可以像我一样拥有开挂的高效人生。
最优质的学习往往不发生在埋头苦读里,而是发生在对生活的观察和体悟里。
阅读全文
posted @ 2019-06-26 18:45
大自然的流风
阅读(832)
推荐(0)
摘要:
php从数据库里取出的数据列表里添加一个属性实战例子:
$opendata = $this->omitmodel->getHistory(1,1);
var_dump($opendata);
foreach ( $opendata as $row) {
$opendata[0]->m54 = 1;
}
没添加前输出:
array(1) { [0]=> object(stdClass)#22 (1) { ["number"]=> string(11) "20190524049" } }
添加后输出:
array(1) { [0]=> object(stdClass)#22 (2) { ["number"]=> string(11) "20190524049" ["m54"]=> int(1) } }
上面只是添加数据库查询结果属性示例,实际应用中下标可以通过$i的方式添加
阅读全文
posted @ 2019-06-26 17:07
大自然的流风
阅读(677)
推荐(0)
摘要:
Python数据分析工具:Pandas之Series
Pandas概述
Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。
Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具。
Pandas提供大量能使我们快速便捷地处理数据的函数和方法。
Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单。
阅读全文
posted @ 2019-06-24 18:53
大自然的流风
阅读(26830)
推荐(0)
摘要:
大数据除了Hadoop还有哪些常用的工具?
1.Hadoop大数据生态平台
2.Spark,大数据分析的“瑞士军刀”
3.Storm,实时大数据处理工具
4.Apache Drill
5.RapidMiner
6.Pentaho BI
阅读全文
posted @ 2019-06-24 03:49
大自然的流风
阅读(2893)
推荐(0)
摘要:
php7.3升级后CI框架session失效session不能读取的问题
框架ci3.0.2,php服务器从5升级到7.x后发现session失效了
ci无法设置session的问题
根本原因在,libraries/Session/Session.php 中 133行:
将上面的/^[0-9a-f]{40}$/, 改成 /^[0-9a-z]{10,40}$/
阅读全文
posted @ 2019-06-06 06:55
大自然的流风
阅读(2228)
推荐(0)
摘要:
用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本
Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行。
可以访问和从任何页面运行它们。当你运行一个片段,它从当前打开的页面的上下文中执行。
要创建一个片段(Snippets),首先F12 打开开发者工具,
再到Sources面板中,单击上Snippets选项卡,在导航器中单击鼠标右键,然后选择New。
阅读全文
posted @ 2019-06-02 21:08
大自然的流风
阅读(4275)
推荐(0)
摘要:
移动端调试神器vconsole,手机端网页的调试工具Eruda
移动端中使用 vConsole调试,移动端调试工具vconsole安装
Git地址:https://github.com/WechatFE/vConsole
vConsole是一款由微信公众平台前端团队打造的前端调试面板,专治手机端看log难题。
目前vConsole自带有2个面板,默认为“日志”面板,负责展示log。
手机端网页的调试工具Eruda: Console for Mobile Browsers
UI Recorder是一款零成本的整体自动化测试解决方案,一次自测等于多次测试,测一个浏览器等于测多个浏览器!
AlloyLever是腾讯AlloyTeam团队开源的一款Web 开发调试工具。
Android&Html5混合开发WebView调试必备神器DevTools,chrome浏览器调试手机端WebView
DevTools能在浏览器上调试手机中的webview代码,给手机端调试带来了极大的便利!
阅读全文
posted @ 2019-06-02 17:22
大自然的流风
阅读(14215)
推荐(0)
摘要:
联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum
这个是联盟链,联盟链一般都基于IBM开源的那个超级账本Hyperledger Fabric框架开发的
目前最活跃最被认可的应用于联盟链的典型开源区块链代码项目,是由IBM推出的Fabrice以及金链盟开源的FISCO BCOS
Quorum是一个基于以太坊的分布式账本协议,其具有交易与合约隐私功能 ,它是通过一种新的共识机制来实现的。
主要增强功能:
QuorumChain - 一个基于多数投票的新共识模型;
Constellation - 一项对等加密信息交换功能;
Peer Security- 使用智能合约的节点/同等节点许可;
阅读全文
posted @ 2019-05-25 15:21
大自然的流风
阅读(2297)
推荐(0)