作者归档:月小升

关于 月小升

正在创业

php数组的21个操作合并,拆分,删除,排序…

1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: array array_merge (array array1 array2…,arrayN) 这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。 2. 追加数组 array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为: array array_merge_recursive(array array1,array array2[…,array arrayN]) 程序实例如下: 现在键 mango 指向一个数组,这个数组由两个颜色值组成的索引数组。 3. 连接数组 array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为: array array_combine(array keys,array values) 注意,两个输入数组必须大小相同,不能为空。示例如下 4. 拆分数组 array_slice() array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式: array array_slice (array array, int … 继续阅读

发表在 PHP | 标签为 , , | 留下评论

海外支付stripe对接支付

strip支付 https://stripe.com/docs/checkout/tutorial <form action="index.php" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_wIAv7SdDJV2B6zPPUdnXnJCd" data-amount="999" data-name="Leoptique Inc." data-description="Widget" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto"> </script>     </form> 测试的信用卡号 4242424242424242 各种测试的信用卡 https://stripe.com/docs/testing#international-cards 注意填写日期的时候,尽管可以随便写,但是你不能写年份低于当前的,比如15 就不行。我写19就可以了 2019年到期 2015年到期,就不行了,说明卡过期了。 strip 返回的数据,采用POST方式 array(3) { ["stripeToken"]=> string(28) "tok_19xSp5GoFgQiAmhVvbVsCIGI" ["stripeTokenType"]=> string(4) "card" ["stripeEmail"]=> string(15) "asdasdf@afd.com" … 继续阅读

发表在 PHP | 标签为 , , , | 留下评论

mysql Lost connection to MySQL server at ‘reading initial communication packet

mysql 爆出,本地连接正常,远程链接无法链接,爆出错误 Lost connection to MySQL server at ‘reading initial communication packet 大量无法远程链接的问题 1.iptables 导致 看看iptables -L 2.mysqld 下增加 skip-name-resolve 我加了发现不行 看下面 3.bind-adress 我发现mysqld 还有一句 bind-address = ::ffff:127.0.0.1 [mysqld] #bind-address = ::ffff:127.0.0.1 local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended … 继续阅读

发表在 数据库 | 标签为 | 一条评论

Centos 7 mysql 如何重启动MariaDB篇

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。[3] MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB # yum install mysql -y # mysql ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111) 试着去启动mysql服务,仍然不行   # systemctl start mysql Failed to issue method call: Unit mysql.service failed to load: No such … 继续阅读

发表在 Linux, 数据库 | 标签为 , , | 留下评论

游戏上瘾如何戒掉游戏

游戏控制的极端 我本人一直是一个重度的游戏瘾患者,知道前天,我半夜3点,不睡觉,沉迷在游戏里,我才最终承认我是个上瘾的人。游戏如同毒品,烟瘾一样。只是我从来不承认 我只是玩一会儿 我没什么事情可做。 我放松一下 我庆祝一下 持续打游戏的借口,如同那些想戒烟,禁止自己吃零食的人一样的多,如滔滔江水,连绵不绝。 查了下百度,不少人和我一样 我玩了游戏觉得才有意思,人生太无聊。 我戒了游戏2个月,觉得人生失去了整个意义。 我忍不住玩游戏,如何戒掉。 说一下本人的感受 1.每次遇到身体不舒服,我玩游戏打发时间,觉得时间很快就过去了。 2.我想念游戏的时候,几乎迫不及待 3.我每次长时间的打了游戏,会状态下降,一直输,一直打。然后很生气 4.我打了很久,腰疼背痛,脾气暴躁 我经常一天长达8小时的打游戏,那是周末 然后我睡前对自己说,明天不玩了,然后重复了好多年。 现在我承认了自己的病,然后开始寻找生命的其它意义。 1.挣钱,追求财富的自由 2.去旅游 3.我一直想画画 我的人生梦想的清单多达30项,需要我去实现,我居然一拖再拖 策略1.把人生当成游戏,比如我要完成一个计划 策略2.相信生命中不仅仅只有游戏才有意义,才刺激 策略3.安静下来,每天打坐。 策略4.游戏突破了现实的限制,我要问问自己是实际社会里的失败者么,才去追求那个虚无的荣耀。游戏很多时候不过是人生并不那么精彩的人的追求刺激的一个方式。精彩的人生有很多种,但不是游戏。 策略5.用其它事情来替代游戏,比如画画,读书,健身,把自己的时间排满。 如果你是重度患者,或许应该继续向下阅读 下面的这个文章,解释了如何对抗。 扩展:游戏真的可以对抗人生中的无意义? “从我的孩子,一位10后,不顾一切地挣脱我的手在购物商城里的电子游戏厅流连忘返那一刻起,从他一到周末就心心念念要去VR体验馆玩滑雪、搏斗和切水果、随时随地都想从我兜里掏出手机玩赛车游戏和奥特曼打怪那一刻起,我感到了自己人生经历的局限性。他如此急切地奔向游戏世界,沉迷其中。我则陷入迷惘:我应该给他自由,还是限制,甚至禁止他?” 这一组关于游戏的报道,始于我的同事蒲实在育儿过程中一个简单的困惑。我相信,这个时代的为人父母者,多少都带着类似的困惑。或者说,作为在书籍文化中成长起来的一代人,面对在数字文化中成长起来的一代人,我们对于坚守过去的生活方式和价值观,并没有那么大的自信。 美国当代著名人类学家玛格丽特·米德(M·Mead)曾经从文化的传递的角度,把人类文化分为前喻文化、并喻文化、后喻文化,其中,前喻文化是指晚辈主要向长辈学习;并喻文化是指晚辈与长辈的学习都发生在同辈之间;后喻文化则是指年轻人因为对新观念、新科技良好的接受能力而在许多方面都要胜过他们的前辈,年长者反而要向他们的晚辈学习。莫非,对游戏文化的怀疑与拒绝,是我们固守着前喻文化的偏见,是我们自身的匮乏,而不是年轻人的问题? 去年6月,芝加哥大学经济学院的教授Erik Hurst在给学生的一次毕业演讲中也提到了一个类似的困扰,他的儿子12岁,“现在他可以在周末写完作业以后玩两个小时的游戏,但如果由他来决定,我相信他每天会花23个小时半的时间玩游戏。如果没有我们的强令配给制度,我不知道他会不会不吃饭,但我很肯定他不会洗澡。” 毕竟是经济学教授,这一点育儿的忧虑被拓展到对整个美国经济与政治前景的不安。他说,与21世纪之初相比,美国20多岁的工人阶级的工作时间减少了4个小时,而玩游戏的时间增加了3个小时。在人口统计学的规模上,玩游戏取代了他们失去工作的时间。究其原因,是现代技术,尤其是自动化技术减少了对“低水平技术”工作的需求,而越来越强大的游戏技术则提升了娱乐的主观价值。他表达了对于这些工人人生前景的担忧,包括经济不稳定、药物滥用、自杀倾向等。 但是,与他们暗淡的未来形成鲜明对比的,是他们当下的幸福水平。就当下而言,这些年轻人并非悲惨绝望,而是恰恰相反。如果进行问卷调查,你会发现,这些人的幸福水平远远超过了2000年早期同类人群的幸福水平。也就是说,尽管就业率降低了,越来越的年轻人住在父母的地下室里,但他们对生活的满足感却更高了。 我们应该如何看待这种变化?游戏,到底是消费主义的精神鸦片?还是生产所谓“心流体验”的幸福引擎? ▲2016年7月份,任天堂公司推出的游戏“Pokémon … 继续阅读

发表在 吐槽 | 标签为 , | 3 条评论

程序员编程的五种境界

对号入座看看自己属于那个编程层次 编程技能层次 编程技能层次,指的程序员设计和编写程序的能力。这是程序员的根本。 0段—非程序员: 初学编程者,遇到问题,完全是懵懵懂懂,不知道该怎么编程解决问题。也就是说,还是门外汉,还不能称之为“程序员”。计算机在他面前还是一个神秘的黑匣子。 1段—基础程序员: 学习过一段时间编程后,接到任务,可以编写程序完成任务。 编写出来的代码,正常情况下是能够工作的,但在实际运行中,碰到一些特殊条件就会出现各类BUG。也就是说,具备了开发Demo软件的能力,但开发的软件真正交付给客户使用,恐怕会被客户骂死。 2段—数据结构: 经过一段时间的编程实践后,程序员会认识到“数据结构+算法=程序”这一古训的含义。他们会使用算法来解决问题。进而,他们会认识到,算法本质上是依附于数据结构的,好的数据结构一旦设计出来,那么好的算法也会应运而生。 设计错误的数据结构,不可能生长出好的算法。 记得某一位外国先贤曾经说过:“给我看你的数据结构!” 3段—面向对象: 再之后,程序员就会领略面向对象程序设计的强大威力。大多数现代编程语言都是支持面向对象的。但并不是说,你使用面向对象编程语言编程,你用上了类,甚至继承了类,你就是在写面向对象的代码了。 我曾经见过很多用Java,Python,Ruby写的面向过程的代码。 只有你掌握了接口,掌握了多态,掌握了类和类,对象和对象之间的关系,你才真正掌握了面向对象编程技术。 4段—设计模式: 曾经在网上看到这样一句话:“没有十万行代码量,就不要跟我谈什么设计模式”。深以为然。 记得第一次看Gof的设计模式那本书的时候,发现虽然以前并不知道设计模式,但在实际编程过程中,其实还是自觉使用了一些设计模式。设计模式是编程的客观规律,不是谁发明的,而是一些早期的资深程序员首先发现的。 5段–语言专家: 经过一段时间的编程实践,程序员对某一种常用的编程语言已经相当精通了。有些人还成了“语言律师”,擅长向其他程序员讲解语言的用法和各种坑。 6段–多语言专家: 这一个阶段的程序员,因为工作关系,或者纯粹是因为对技术的兴趣,已经学习和掌握了好几种编程语言。已经领略了不同编程语言不同的设计思路,对每种语言的长处和短处有了更多的了解。 他们现在认为,编程语言并不是最重要的,编程语言不过是基本功而已。

发表在 吐槽, 日常随笔 | 标签为 , , , | 留下评论

php小函数,遍历文件夹的4种姿态

php遍历文件夹,不少时候还是很需要的 /*获取所有文件*/ function get_all_files( $path ){ $list = array(); foreach( glob( $path . ‘/*’) as $item ){ if( is_dir( $item ) ){ $list = array_merge( $list , get_all_files( $item ) ); } else{ $list[] = $item; } } return $list; … 继续阅读

发表在 PHP | 标签为 , , | 留下评论

mysql 调用,新手常犯的10个错误

经常收到安全部门的警告邮件,SQL注入,XSS攻击漏洞,等等。偶尔还被黑客挂了小马,郁闷不。 数据库执行太慢(月小升博客的经验,基本是没有正确使用索引导致) 看看MYSQL常犯的11个错误 1、使用MyISAM而不是InnoDB MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB。 MyISAM是默认使用的。但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的。MyISAM不支持外键的 约束,这是保证数据完整性的精华所在啊。另外,MyISAM会在添加或者更新数据的时候将整个表锁住,这在以后的扩展性能上会有很大的问题。 解决办法很简单:使用InnoDB。 2、使用PHP的mysql方法 PHP从一开始就提供了MySQL的函数库。很多程序都依赖于mysql_connect、mysql_query、mysql_fetch_assoc等等,但是PHP手册中建议: 如果你使用的MySQL版本在4.1.3之后,那么强烈建议使用mysqli扩展。 mysqli,或者说MySQL的高级扩展,有一些优点: 有面向对象的接口 prepared statements(预处理语句,可以有效防止SQL-注入攻击,还能提高性能) 支持多种语句和事务 另外,如果你想支持多数据库那么应该考虑一下PDO。 3、不过滤用户输入 应该是:永远别相信用户的输入。用后端的PHP来校验过滤每一条输入的信息,不要相信JAVAscript。像下面这样的SQL语句很容易就会被攻击: $username = $_POST["name"]; $password = $_POST["password"]; $sql = "SELECT userid FROM usertable WHERE username=’$username’AND password=’$password’;"; // run query… 这样的代码,如果用户输入”admin’;”那么,就相当于下面这条了: SELECT userid … 继续阅读

发表在 PHP, 数据库 | 标签为 , , | 留下评论

php九大缓存技术,你知道几个?

月小升经常的缓存算法是生成固定静态文件,让Nginx访问这个静态文件。如果会发生更新,那么后台更新文章,删除这个文件,程序访问这个静态文件不存在的时候,自动生成即可。 其实除了文件缓存,还有很多办法。据我所知道的Ecshop和Discuz用了很多SQL语句的缓存。比如首页推荐的产品,可以生成数据序列化存入数据库,避免下次加载发生多次sql查询 下面看到的9个技术,以前也听说过,不过这篇比较全面的php缓存文章,还是不错的。 1、全页面静态化缓存 也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms; 一种比较常用的实现方式是用输出缓存: Ob_start() ******要运行的代码******* $content = Ob_get_contents(); ****将缓存内容写入html文件***** Ob_end_clean(); 2、页面部分缓存 该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存(ESI技术,请baidu,此处不详讲)。 该种方式可以用于如商城中的商品页; 3、数据缓存 顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类; Ecmall商城系统里面就用了这种方式; 4、查询缓存 其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示; 按时间变更进行缓存 其实,这一条不是真正的缓存方式;上面的2、3、4的缓存技术一般都用到了时间变更判断;就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时更新一次; 5、按内容变更进行缓存 这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件; 比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存; 当商家在后台修改这个商品的信息时,点击保存,我们同时就更新缓存文件;那么,买家访问这个商品信息时,实际上访问的是一个静态页面,而不需要再去访问数据库; 试想,如果对商品页不缓存,那么每次访问一个商品就要去数据库查一次,如果有10万人在线浏览商品,那服务器压力就大了; 6、内存式缓存 提到这个,可能大家想到的首先就是Memcached;memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。 它就是将需要缓存的信息,缓存到系统内存中,需要获取信息时,直接到内存中取;比较常用的方式就是 key–>value方式; <?php $memcachehost = ’192.168.6.191′; $memcacheport = … 继续阅读

发表在 PHP, 数据库 | 标签为 | 留下评论

有趣的程序循环题目,适合初学for循环

本金10000元存入银行,年利率是百分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少? 计算1000以内所有不能被7整除的整数之和 计算出1—100之间所有不能被3整除的整数的和大于(或等于)2000的数字。 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1、水仙花数 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 【难度系数】▲ 【分析】153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 【代码】 #include int main(void) { int i = 0; int sum = 0; int j = 0; for(i = 100; i < 1000; i ++) { sum = 0; int temp = … 继续阅读

发表在 程序视点 | 标签为 , | 一条评论