├── .gitignore
├── MySQL
└── 简介与安装配置.md
├── PHP
├── 代码重用与函数.md
├── 使用MySQL数据库.md
├── 字符串操作与正则表达式.md
├── 安全问题.md
├── 安装与配置.md
├── 快速入门.md
├── 错误和异常处理.md
├── 面向对象.md
└── 高级应用.md
├── README.md
└── 一些书单.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | *.bak
3 | .*.s[a-w][a-z]
4 |
5 | !.gitignore
6 |
--------------------------------------------------------------------------------
/MySQL/简介与安装配置.md:
--------------------------------------------------------------------------------
1 | # MySQL 简介
2 | MySQL 是一个快速的数据库管理系统(RDBMS),使用范围比较广,尤其是 Linux + Apache + MySQL + PHP(LAMP) 组合,非常流行。
3 |
4 | # MySQL 安装配置
5 | 以下将讲述 MySQL Server 及 命令行工具等在作为开发环境本机的安装简要步骤。
6 |
7 | ## 在 Linux 下安装 MySQL
8 | 以 Linuxer 的折腾能力,这个操作应该不是很困难。只要在系统相应的包管理器中安装 MySQL Server 对应的软件包,系统就能自动完成依赖。例如,在 Debian/Ubuntu 下是`sudo apt-get install mysql-server`,而 Fedora/CentOS 下是`sudo yum install mysql-server`,Arch Linux是`sudo pacman -S mysql`,等等。
9 |
10 | ## 在 Windows 下安装 MySQL
11 | 首先,在甲骨文官网上下载 MySQL Server For Windows 的合适版本的安装包,而后按照英文提示安装即可。
12 |
13 | ** 提醒:虽然是开发用的机器,但仍然建议root密码设置得复杂一些,以免被攻破。 **
14 |
15 |
--------------------------------------------------------------------------------
/PHP/代码重用与函数.md:
--------------------------------------------------------------------------------
1 | # 3.代码重用与函数
2 |
3 | ##代码重用
4 | 就……不用重复编写某一段代码了……或者为了使网站的页面们都有相同的结构或者样式……
5 | ```
6 | requir() & include()
7 | 他萌有什么区别
8 | ```
9 |
10 | ###举个栗子
11 | ```
12 | //template.php
13 |
16 | ```
17 |
18 | ```
19 | //show.php
20 |
25 | ```
26 |
27 |
28 | ##函数
29 | 就是自定义function_name()
30 | 比如求a+b
31 | ```
32 | function plus($a,$b){
33 | return $a+$b;
34 | }
35 | ```
36 |
37 | ###作用域
38 | global什么的……
--------------------------------------------------------------------------------
/PHP/使用MySQL数据库.md:
--------------------------------------------------------------------------------
1 | # 5.使用 MySQL 数据库
2 |
3 | __ 阅读前后最好要了解一些 SQL 语言的知识。 __
4 |
5 | 而后,提醒一点:PHP 的 mysql 扩展现在已不建议使用,而且即将废弃。应该使用 mysqli 扩展对应的函数或类。
6 |
7 | ## 基本步骤
8 | ### 连接到 MySQL 服务器
9 |
10 | // 一般使用面向对象的写法。mysqli 是 mysqli 扩展的类。
11 | $db = new mysqli('hostname','usename','password','database');
12 |
13 |
14 | 在连接数据库之后,通常还要进行连接时字符集设置,以避免连接过程中出现乱码:
15 |
16 | $db->set_charset('utf8'); // `utf8` 是 MySQL 中常用的编码类型。
17 |
18 |
19 | 其中,`$db` 是一个包含连接资源(Resource)信息的对象。因为包含资源型的变量,因此对其进行序列化等操作是无效的。
20 |
21 | 另外,连接数据库的过程不是一帆风顺的。相关错误处理,请见底部参考资料中 PHP 官方手册。
22 |
23 | ### 选择接下来操作的数据库
24 | $db->select_db(db_name);
25 |
26 | ### 查询数据库
27 |
28 | $sql = "SELECT * FROM `dbname` WHERE `column`='value001' ";
29 | $result = $db->query($sql);
30 | ` // $result 即得到的查询集,也是一个包含了查询资源的对象。
31 | // 并请注意:在下一步进行之前,最好检查 $result 是不是为假(FALSE)。当查询失败时(通常由于 sql语句出错、或 MySQL 连接丢失引起),query函数返回 FALSE。
32 |
33 |
34 | ### 检测查询结果
35 |
36 | $num_result = $result->num_rows; // 本语句返回查询集的结果个数
37 |
38 |
39 | ### 关闭数据库连接
40 |
41 | $db->close();
42 |
43 | ## 参考资料
44 | 下面列出的是一些建议读者认真阅读的资料,这些资料对于加强对相关细节的认识和处理,具有很大的好处。
45 |
46 | * [PHP 官方文档 - mysqli](http://php.net/manual/zh/class.mysqli.php)
47 |
48 |
--------------------------------------------------------------------------------
/PHP/字符串操作与正则表达式.md:
--------------------------------------------------------------------------------
1 | # 2.字符串操作与正则表达式
2 |
3 | 字符串连接使用".",比如
4 | ```
5 | $a = "196";
6 | $b = "s**";
7 | echo $a . "loves" . $b;
8 | ```
9 | 就会输出……(请自行实践)
10 |
11 | ## 字符串整理
12 | trim($str) 除去$str开始和结束位置的空格(包括\n \r \t \x0B \0),返回一个字符串
13 | ltrim($str) 除去$str开始位置的……
14 | rtrim($str) ……
15 |
16 | ## 格式化字符串
17 | nl2br($str) 将$str中的换行符替换为
18 | print() printf() sprintf() echo (需要了解他们的区别)
19 | strtoupper($str) 转换为大写
20 | strtolower($str) 转换为小写
21 | ucfirst($str) 若第一个字符是字母则大写
22 | ucwords($str) 每个单词的第一个字母大写
23 |
24 | addslashes($str) 对"和\前加\
25 | stripslashed($str) 去除\
26 |
27 | 具体可以尝试实践
28 |
29 | ## 连接和分割字符串
30 | strtok()
31 | substr()
32 | explode(), implode()
33 | join()
34 |
35 | ## 字符串的比较
36 | 排序strcmp() strcasecmp() strnatcmp()
37 | 长度strlen()
38 |
39 | ## 字符串查找
40 | strstr(), stristr()
41 | strchr(), strtchr()
42 | strpos(), strrpos()
43 |
44 | ## 字符串替换
45 | str_replace() substr_replace()
46 |
47 | ## 正则表达式
48 | 函数有`preg_match`,`preg_match_all`等,函数用法可参考
49 | * (http://ca3.php.net/manual/en/function.preg-match.php)
50 | * (http://ca3.php.net/manual/en/function.preg-match-all.php)
51 | 此外,还可参考前端教程中的 [正则表达式章节](https://github.com/QSCTech/tutorial-frontend/blob/master/RegExp.md) ,尤其是其参考资料中的链接。
52 |
53 |
--------------------------------------------------------------------------------
/PHP/安全问题.md:
--------------------------------------------------------------------------------
1 | # 安全问题
2 |
3 | ## 关系型数据库的SQL注入
4 |
5 |
6 | ## 与前端一起造成的前端XSS注入
7 |
8 |
9 | ## 过滤不严,命令任意执行
10 |
11 |
12 | ## 文件任意上传
13 |
14 |
15 | ## 其他问题
16 |
17 |
18 | ### Time-Based Blind SQL Injdection with Heavy Queries
19 |
20 | ### 锁的实现,原子
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/PHP/安装与配置.md:
--------------------------------------------------------------------------------
1 | #PHP安装与配置
2 | 首先下载php压缩包(一般都是绿色的)比如php-5.4.9-Win32-VC6-x86.zip
3 |
4 | 1.将安装包解压到c:\php目录下(此处为了方便说明,也可以放到别处)
5 |
6 | 2.将```php.ini-development```文件名改为```php.ini```
7 |
8 | 3.找到```;default_charset = "iso-8859-1"```,并在下面一行添加```default_charset = "utf-8"```
9 | 注意default_charset前面有个分号,分号是注释的标志
10 |
11 | 4.找到```;extension_dir = "./"```,并将其修改为```extension_dir = "c:/php/ext"```
12 |
13 | 5.找到```;extension=php_bz2.dll```,其下一长串类似的列表,即为可供选择加载的模块,可以根据需要加载,加载方法为去掉前面的;号,推荐加载以下模块:
14 | ```
15 | extension=php_mysql.dll
16 | extension=php_mysqli.dll
17 | extension=php_xmlrpc.dll
18 | ```
19 |
20 | 6.找到```memory_limit = ```,修改数值可以限定php脚本最多可占用的内存大小
21 | ```
22 | memory_limit = 256M
23 | ```
24 |
25 | 7.修改环境变量,将php安装文件夹位置添加到windows系统路径中,在已有变量值的最后添加```;c:\php;c:\php\ext```。
26 |
27 |
--------------------------------------------------------------------------------
/PHP/快速入门.md:
--------------------------------------------------------------------------------
1 | # 1.快速入门
2 |
3 | 首先需要有一定的HTML基础
4 |
5 | ## php的编辑器
6 | 我是在用Zend的……如果有其他的推荐欢迎commit,我也尝试一下~
7 |
8 | ## php代码
9 |
10 | PHP语言代码是类似这样的
11 | ```
12 | /*this is a php code*/
13 | //this is a php code
14 |
19 | ```
20 | 其中是php的代码标记,表示中间是php代码,类似html标记
21 | 变量都是以$符号开头的,每句话以分号结束
22 | php的注释方式类似c语言,有两种(代码里有)
23 | 刚才的例子是完成了一个a+b(其实是1+2)
24 |
25 |
26 | php代码可以直接插入到html之中,也可以被html引用
27 |
28 | 一般前端传给后端一组数据(或表单),后端进行处理
29 |
30 | 比如```http://jwbinfosys.zju.edu.cn/xsmain_pyjh.php?xh=3130000001&dqszj=2013```
31 |
32 | 就向后端传输了两个数据```xh=3130000001```和```dqszj=2013```
33 |
34 | ## 举个栗子(post表单)
35 | ```
36 |
37 |