《php和mysql web开发》读书笔记
总算是强迫自己把第一篇给看完了,在这里做一个小结,将一些知识点记录下来。
一、第一篇 使用PHP
1.php中的注释。php支持c、c++和shell脚本风格注释 /**/多行注释 //单行注释 # 单行注释
2.date()函数。 date("H:i:s"); //15:24:23 date("ymd"); //20130707
3.使用$_POST['username'] $_GET'['username']来得到表单内容,取决于提交表单时使用的方法是post 还是get。无论使用什么方式,都可以使用$_REQUEST['username']来得到表单内容。
4.标识符是变量名称的名称,标识符可以是任何长度。由字母、数字、下划线组成。不能以数字开始。标志符区分大小写,但是函数名称是个例外,函数名不区分大小写。php的特性之一就是它不要求在使用变量之前声明变量。
5.php中的8种数据类型,6种常用,2种不常用。
Integer(整数) 用来表示整数
Float(浮点数,也叫Double,双精度值) 用来表示所有实数
String(字符串) 用来表示字符串
Boolean(布尔值) 用来表示true 或false
Array(数组) 用来保存具有相同类型的多个数据项。
Object(对象) 用来保存类的实例
还有两个特殊的类型:NULL(空)和resource(资源)没有被赋值,已经被重置的为NULL。特定的内置函数(例如数据库函数)将返回resource类型的变量。
6.声明和使用常量 define('OILPRICE',100); 没有$符号 使用时直接使用名称即可。 echo OILPRICE; 可以使用phpinfo()来查看php预定义的许多常量。
7.变量的作用域
超级全局变量,它们可以在任何地方使用和可见。$GLOBALS['myvariable'] $_SERVER 服务器环境变量数组 $_GET $_POST $_COOKIE $_FILES与文件上传相关的变量数组 $_ENV 环境变量数组 $_REQUEST 所有用户输入的变量 数组,包括$_GET $_POST 和$_COOKIE所包含的输入内容。 $_SESSION 会话变量数组
8. $a and $b $a or $b 与 $a && $b $a || $b 作用相同,但是前者的优先级要低。
9.错误抑制操作符 。错误抑制操作符@可以在任何表达式前面使用,例如 $a = @(57/0);如果没有@操作符,代码会产生一个除0警告,使用这个操作符,警告会被抑制住。
10.执行操作符。它是一对反向单引号`` 在键盘上数字1的左边。在windows 上可以使用如下代码得到c盘下的文件列表
$output = `dir c:`;
echo "<pre>$output</pre>"
11.一些常用函数的使用
$a = 4;
echo gettype($a).'<br>'; //得到数据类型
settype($a,'double'); //设置数据类型
echo gettype($a)
is_array()检查变量是否是数组,is_double() is_string() is_null() 检查变量是否为null is_scalar() 检查该变量是否是标题,即一个整数,浮点数,布尔值,字符串。is_numeric() 检查该变量是否是任何类型的数字或字符串。is_callable() 检查该变量是否是有效的函数名称。
isset()用来测试变量的状态。如果变量存在,则返回true。与之相对的unset()函数来销毁一个变量。bool empty() 可以用检查一个变量是否存在,以及它的值是否为非空和非0,返回true 或false.
12.if 语句
$a = 69;
if($a>90){
echo "a is bigger than 40";
}elseif($a>50) {
echo "a is bigger than 50";
}else {
echo "last";
}
//如果有一个条件成立,则以后的语句就不会再执行了,这一点和 switch遇到 break:语句时才会停止是不相同的。
//如果使用了 if else 后面不能再加elseif 通常情况即用{}来将条件语句后面的值括住时, else if 与 elseif 作用相同
//但是手册上说如果如果不是用花括号,而是用: 则只能用 elseif ,用else if 时会出现编译错误 需要注意的是与: 匹配的是 endif
13.如果希望停止一段代码的执行,可以有3种方法。在switch循环时可以用break; 在for循环中如果希望跳到下一次循环,可以使用continue语句。如果希望结束整个php脚本的执行,可以使用exit;
14.php中的文件处理。
要在php中打开一个文件,可以使用fopen()函数。$fp = fopen('ordes.txt', 'ab' , true); 如果fopen()成功打开了一个文件,该函数返回一个指向这个文件的文件指针。文件指针保存在$fp中,当希望读写这个文件时,将使用这个变量来访问文件。
php中写文件,fwrite($fp, $outputstring ,strlen($outputstring)); 将保存在$outputstring中的字符串写入到$fp指向的文件中。 strlen()用来得到字符串的长度。
关闭文件。fclose($fp); 如果文件被成功地关闭,函数将返回一个true值,反之,该函数将返回false;
知道何时读完文件 feof() 全称File End Of File 。 while(! feof($fp)) 用while循环来读取文件,直到文件末尾。
每次读取一行数据。fgets() 、fgetss()、fgetcsv() $order = fgets($fp ,999) ; fgetss()与fgets()相似,但是它可以过滤字符串中包含的php和html标记。
读取整个文件。 readfile()、fpassthru() 、file() 。readfile('ordes.txt'); 打开文件并将内容输出来浏览器中
$fp = fopen('ordes.txt', 'ab' , true); fpassthru($fp); 如果操作成功,fpassthru()返回true,否则返回false
$filearray = file('orders.txt'); 将整个文件读入到一个名为$filearray的数组中,文件中的第一行都将作为一个元素保存在这个数组中。
读取一个字符。fgetc() 。 $char = fgetc($fp);
读取任意长度 fread()。 string fread(resource fp, int length);
查看文件是否存在。file_exists 确定文件大小 filesize() nl2br() 函数将输出的\n字符换成html的换行符<br/>
删除一个文件。unlink() 无法删除将返回false 。php中没有名为delete的函数。
rewind()可以将文件指针复位到文件的开始。ftell()可以以字节为单位报告文件指针当前在文件中的位置 。fseek()可以将文件指针指向文件的某个位置。
文件锁定。flock()
15.php中的数组。
echo '<br>'; //数组的使用1
$products = array('car','picture','camara');
foreach($products as $m){
echo $m." ";
} echo '<br>'; //数组的使用2 $products2 =array('car'=>'bmw','house'=>'miantian');
foreach($products2 as $key =>$m){
echo "$key". "$m"." ";
} echo '<br>'; //数组的使用3 list可以将一个数组分解成一系列的值
reset($products2); //reset函数将数组内部的指针倒回到第一个单元,并返回数组的第一个元素的值,如果数组为空则返回false
//echo reset($products2); 输出bmw
while(list($key,$value) = each($products2)){ // 使用each时,如果上面已经用到了$products2,则必需要用reset将当前元素重置到数组的开始处
echo "$key-->"."$value"." ";
}
16.数组的排序
$prices = array('Trice'=>100,'Oil'=>10,'Plugs'=>4,'acc'=>5);
asort($prices);
var_dump($prices); //4,5,10,100 按照数组的值来进行升序排列 arsort 反向排序 krsout也是反向
echo '<br>';
ksort($prices);
var_dump($prices); //Oil,Plugs,Trice acc ksort按照数组的关键值进行升序排序,应该是按ascii排序的 a为97 小写字母比大写子母大。
echo '<br>';
sort($prices);
var_dump($prices); //array(4) { [0]=> int(4) [1]=> int(5) [2]=> int(10) [3]=> int(100) } 使用sort之后,会对数组的关键字重新赋值成数值,故最好只用于1维数组
// sort 是对值进行升序排序,如果仅仅是用于一维数组,且其关键字为数字 则其功能与 asort()相同。
echo '<br>';
$arr4=array(35,26,58,96,12,36,48);
shuffle($arr4); //随机排序
print_r($arr4);
echo '<br>';
$arr5=array(35,26,58,96,12,36,48);
$arr6 = array_reverse($arr5); //反向排序 Array ( [0] => 48 [1] => 36 [2] => 12 [3] => 96 [4] => 58 [5] => 26 [6] => 35 )
$arr6 = array_reverse($arr5,true); //Array ( [6] => 48 [5] => 36 [4] => 12 [3] => 96 [2] => 58 [1] => 26 [0] => 35 ) 如果参数加了true 会保留原来的键名
print_r($arr6);
17.数组的其它操作
每个数组都有一个内部指针指向数组中的当前元素。当使用each()时,就间接地使用了这个指针。
如果创建一个新数组,那么当前指针就被初始化,并指向数组的第一个元素。调用current($array_name)将返回第一个元素
调用next()或each()将使指针前移一个元素。each($array_name)会在指针前移一个位置之前返回当前元素,而next($array_name) 是将指针前移,返回新的当前元素。
reset($array_name)返回指向数组第一个元素的指针,end(array_name)将指针移到数组末尾。分别返回数组的第一个元素和最后一个元素。
prev()函数和next()函数相反。将当前指针往回移一个位置然后再返回新的当前元素。
使用each() current() reset() end() next() pos() prev()可以自己编写任何顺序浏览数组的代码。以下为反向输入数组元素例子。
$array = array(1,2,3);
$value = end($array);
while($value){
echo "$value <br>";
$value = pre($array);
}
对数组的每一个元素使用相同方式修改。使用 array_walk()函数。
18.字符串的格式化
21.require('demo.php'); 与include('demo.php');
二、使用MySql
1.
《php和mysql web开发》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- [记录]使用Gitblit 在windows 上安装Git Server
参考了: Windows平台下搭建Git服务器的图文教程 主要修改了:data/gitblit.properties # Include Gitblit's 'defaults.properties' ...
- Android入门开发之销毁activity
使用: 销毁.关闭页面activity 如果打开下个页面的同时销毁了本页面,在下个页面无法返回本页面,每次打开APP应用就会先显示一张APP的介绍图.或者LOGO页面,延时几秒进入应用,进入后无法再返 ...
- Anddoi 将时间转换为指定时区的时间
import java.text.Format;import java.text.ParseException;import java.text.SimpleDateFormat;import jav ...
- ODBC连接MySQL出现"E_FAIL"错误
ODBC不能处理这种格式的数据:0000-00-00,将其更新为正常的时间即可解决
- ReactiveCocoa入门教程——第一部分(转)
作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...
- Spring集成PageHelper的简单用法
1.Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应 <!-- 添加Mybatis依赖 --> <dependency> <groupId ...
- Java实战之02Hibernate-05检索策略、检索方式
十一.Hibernate的检索策略 1.概述: 查询的时机:什么时候去查? /** * 一张表的检索策略我们称之为: * 类级别的检索策略. * 注意:只要是说类级别的检索策略,就一定不涉及关联对象. ...
- List分页显示
//对List集合 数据进行分页 int pageNum = page.getPageNo();// 当前显示第几页 int perPageNum = page.getPageSize(); // ...
- Ant 入门
参考: Ant官网 http://ant.apache.org/ 轻量级java ee企业应用实战(李刚) Ant当前版本1.9.6 Ant基于Java 配置环境变 ...
- (int)、(int&)和(int*)的区别(转)
(1).首先通过一个例子看(int)和(int&)的区别: float a = 1.0f;cout << (int)a << endl;cout << (i ...