2016年12月6日星期二

php 新手教程 1

教程是很多,我这种教程不一定有人看,但是怎么说呢,个人口味不同。

带你入个门,其他的请Google,专业名词太多,根本没办法一一说明,想看专业解释,可以去看维基百科。

闲话就不说了,php 入门,第一阶段,不是hello word,是搭建环境,连运行环境都没有,还怎么运行php,这个入门也不会说那么多关于php的运行机制,等你成了老鸟可以自己去琢磨。

开始第一步,搭建运行环境,这里推荐一键安装包wampserver,喜欢自己倒腾三大件的,apache,php,mysql。或者有人看到什么nginx比apache快什么的,可以自己尝试,我这里不介绍这些,并不是这些不重要,而是本人的教学方法是怎么简单怎么来,不要一开始就接触高难度,反而会使得自己难受,不喜欢我的教学方式的,也不要紧,可以直接关闭了

不要无休止的提问,互动这种东西不是新手该有的东西,你所有的疑问Google里都有,安装好wampserver之后,扩展什么的自己先看看,不建议深入,默认扩展够用了,下面接着开始做开发,第二步,这里就是hello word了,开启wampserver软件,右下角,左击w图标打开www目录,新建hello.php文件,编辑此文件,写入<?php echo "hello word";?>代码。开浏览器,输入http://localhost/hello.php 看看浏览器里显示的内容吧,简单的hello word就此结束。

简单的解释还是要的,不然谁也看不懂这代码是什么。<?php ?>这是个组合,就像括号一样,没什么特别的意思,就是告诉你,这里面是php,echo 是命令,是告诉计算机,输出后面的东西,"hello word",就是要输出的东西,必须要用双引号括起来,这样才显示,不然你可以试试。解释起来太麻烦了,等于就是将php官网的东西搬过来,搬过来还不一定能理解,如果能忍住就忍住吧,后面会慢慢教的。

这里介绍下编辑器,开始学,咱就不要弄什么zend studiophpeclipse的了,这样下去,还得先学会如何使用这些工具,工具好是好,什么高亮提示,语法提醒,什么代码提示,什么debug调试什么的,可是,这就离开了我的一开始定位,不搞复杂的,就搞简单的,由浅入深。建议使用notepad++,为什么建议这个,还是两个字,简单,不需要刻意去学,不需要配置,不需要做什么额外的工作,安装,打开,编辑,保存就行了。

下一课 讲连接数据库

2016年10月22日星期六

编程注意事项 想到就添加

个人编程,不是团队
1 避免死循环,避免循环中添加过重的任务,比如循环查询
2 做好分析记录,在需要的地方添加记录,当无法调试,或者调试不清楚的情况下,可方便查看
3 命名使用适合自己的规则
4 文件分布简单,明了,层次太深不利于理解
5 重要的地方写注释
6 有好的库,就不要自己实现
7 代码缩进,换行整齐,方便读写
8 合理使用内存,该销毁的地方要销毁
9 开发前做设计,需要改善的时候,方便思考,针对需求复杂的
10 合理使用动态变量,适合灵活的场景,不适合效率优先的场景
11 面向过程设计时,避免使用对流程造成不可预估的方法或函数,比如发送邮件,远程获取(curl)等,可通过异步等方式解决
12 做好备份,代码用svn或者git,文档可以用seafile等,正式数据用rsync
13 由于接触的代码语言种类很多,多数情况下会出现代码混用,最好在使用一种代码编写时,不要混编

2014年8月24日星期日

全息+体感+环境模拟=(游戏)未来

先来说说最近的热门产品,VR 我觉得这样的设备,很容易造成思维拘束,对人的视野范围,以及肢体感应是一个非常困惑的问题

再说说精神方面的沉浸式设备,就算现在还没有研发出来,但这只是时间的问题,我觉得这要是出了问题,不光是精神受冲击,估计生命也会有很大的危险

我觉得改变自身周围因素,会比以上两种设备来的安全及容易接受些

目前全息投影技术,在那些技术牛人的不断努力下,现在已经越来越近了,“空间光调制器” 有兴趣的可以搜索下

体感设备,不多说,目前设备出来不少,但是技术还是不够成熟,等待先的革新



环境模拟,目前没有什么好的设备,虚拟现实跑步机算一个,接着就等待虚拟其他环境的设置出现了

未来的游戏好期待不知道,有生之年能不能遇上


2014年6月6日星期五

MySQl分组显示组内前N项

之前在网上搜索过几种解决办法,一直都不是很满意

分开查询

先查询id
select CAST(group_concat(ids) AS CHAR(10000) CHARACTER SET utf8) as iid 
from (select SUBSTRING_INDEX(group_concat(id ORDER BY 字段),',',4) as ids from `table` group by 字段) as val
在根据id查询数据
SELECT * FROM table where id in ($id)

这种也是可以的
select 字段,substring_index(group_concat( concat(字段,':',字段) order by 字段 desc separator '|'),'|',5) fromtable group by 字段;
具体看情况

Linux下mysql忘记root密码的简单解决办法

在密码多如牛毛的今天,很多时候,管理员会出现忘记各种各样的密码,针对mysql中root密码的忘记情况,可以采用以下步骤重新设置root管理密码。
1、修改mysql的配置文件:
#vi /etc/my.cnf
在[mysqld]中加上一句:skip-grant-tables
保存退出;

2、重新启动mysql
# /etc/init.d/mysql restart
3、登录并修改mysql的root密码
#/usr/local/mysql/bin/mysql
mysql>use mysql;
mysql>UPDATE user SET Password = password ( ‘you-passwd’ ) WHERE User = ‘root’;
mysql>flush privileges;
mysql>quit
4、将第一步修改的my.conf修改回来
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除,保存退出;
5、重新启动mysql即可

不记得是否有用,先收藏,下次实践

一行命令安装PPTPD VPN

一行命令安装PPTPD VPN(注意,只在CentOS 5 32bits/64bits下测试通过,其他系统未测试):
wget http://www.CTOHome.com/linux-vps-pack/vpn-pptpd.sh;sh ./vpn-pptpd.sh;
如何创建更多的vpn用户?
请在linux下,ssh编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。

防火墙如果开启,需要设置

*nat
:PREROUTING ACCEPT [27:2438]
:POSTROUTING ACCEPT [49:3077]
:OUTPUT ACCEPT [49:3077]
-A POSTROUTING -s 172.16.36.0/255.255.255.0 -j SNAT --to-source 服务器ip
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [42517923:199393012741]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT 
-A FORWARD -j RH-Firewall-1-INPUT 
-A RH-Firewall-1-INPUT -i lo -j ACCEPT 
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 
-A RH-Firewall-1-INPUT -p esp -j ACCEPT 
-A RH-Firewall-1-INPUT -p ah -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 
COMMIT


CentOS卸载Apache Mysql 和php

收藏
目前新版的Centos系统会集成Apache的服务,而我们在安装有些功能的时候,需要一个完全纯净的系统,这样就需要卸载apache的httpd。
首先我们要知道我们安装了哪些组件,通过命令
rpm -qa|grep httpd
rpm -qa|grep mysql
rpm -qa|grep php
分别可以查看本机安装的apache、mysql和php服务。如果返回为空,则说明本机没有安装该服务。
比如笔者输入第一个命令,返回为:
[root@localhost ~]# rpm -qa|grep httpd
httpd-2.2.3-43.el5.centos
说明本机已经有了httpd组件。如果我们要卸载它,我们输入以下的命令:
rpm -e httpd-2.2.3-43.el5.centos
rpm –e 是卸载rpm包的命令,后面是名称,最后的版本号可以不用打。如果我们需要卸载多个应用,只要输入多次即可。
如果实在卸载不掉的话,可以加—nodeps这个参数来卸载,比如我们卸载httpd-2.2.3-43.el5.cento,实在卸不掉了:
rpm -e httpd-2.2.3-43.el5.centos --nodeps
就可以用以上的命令卸载,看清后面是两个-