刘杰 发布的文章

1、修改php.ini

cgi.fix_pathinfo=1

2、修改nginx.conf

注释掉include enable-php.conf
添加include enable-php-pathinfo.conf

3、重写规则

location / {
if (!-e $request_filename) {

rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
index index.html index.htm index.php l.php;
autoindex off;
}

4、重启

命令:

netstat -tunlap

去掉a表示不显示已经建立的链接,具体详情可以查资料,不再赘述,另外也可以用lsof -i:8888来查看对应端口的pid

停止进程

kill -9 888

kill - 9 表示强制杀死该进程;而 kill 则有局限性,例如后台进程,守护进程等

大概总结,不一定详细,但基本了解就好!
PSR-1:基本的代码风格。
PSR-2:严格的代码风格。
PSR-3:日志记录器规范。
PSR-4:自动加载。

PSR-1主要定义了几点:

1、代码放在<?php ?>标签中
2、PHP文件使用UTF-8字符编码
3、命名空间遵循PSR-4自动加载标准
4、类名和方法名使用驼峰式

PSR-2主要规范了几点:

1、遵循psr-1
2、PHP代码使用4个空格缩进,命名空间后需要一个空行
3、每行代码不能超过80个,行尾不能有空格,文件最后要有一个空行
4、不要使用关闭标签?>
5、类和方法的花括号{},要在类或者方法后自成一行

PSR-3主要规范了几点:

有个成熟的组件Monolog完全可以实现PSR-3接口,而且便于自定义消息格式,详细可以找资料

PSR-4主要规范了几点:

1、一个文件只有一个类,类名和文件名要一样,
2、命名空间和文件实际路径要一致,autoload机制才能实现,也就是自动加载类,接口,traits

黑洞文件:/dev/null
0,1,2分表表示标准输入、标准输出、标准错误

>表示重定向,(>>表示追加)
例如
cat /dev/null 1>/var/log/test.log 会清空test.log文件,1可以默认不写
cat unExistedFile.log 2>/var/log/test.log 该文件不存在,会把错误信息重定向到test.log文件,这里的2不能省略
cat xxx.log &>/var/log/test.log 不管是标准错误还是标准输出,都会重定向到test.log,可以减少书写

linux中|的作用是管道,管道左边的输出作为右边的输入,以此类推
例如

rpm -aq | grep php

  1. 都可以通过索引得到每一个元素
  2. 默认索引值总是从0开始(当然灵活的Python还支持负数索引)
  3. 可以通过分片的方法得到一个范围内的元素的集合
  4. 有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)

所以我们把他们叁统称为:序列 (都可以iterable)

产生原因
一方面自己没这方面的意识,有些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致漏洞产生,比如:

$id  = $_GET['id'];
$sql = "SELECT name FROM users WHERE id = $id";

因为没有对 $_GET['id'] 做数据类型验证,注入者可提交任何类型的数据,比如 " and 1= 1 or " 等不安全的数据。如果按照下面方式写,就安全一些。

$id  = intval($_GET['id']);
$sql = "SELECT name FROM users WHERE id = $id";

把 id 转换成 int 类型,就可以去掉不安全的东西。


- 阅读剩余部分 -

这里的M只是显示宽度,并不是限制数据的宽度,int(1)和int(11)一样的能插入任意正数(有符号2147483647[梅森素素数]),无符号4294967295),其他同理tinyint、smallint等。

  其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,小可不才,试着用自己的方式来阐释一下这个问题,看看是否有帮助。

- 阅读剩余部分 -