《PHP和MySQL Web开发》读书笔记(上篇)
最近过得太浮躁了,实在自己都看不下去了,看了PHP圣经之后,觉得非常有必要要总结一下。
Chapter1.快速入门
·PHP标记:总共有三种风格,常用的还是XML风格为主
<?php echo '<p>Hello PHP!</p>'; ?>
·单引号和双引号对变量显示的影响
在双引号中,变量名称将被变量值所替代,而在单引号中,变量名称,或者任何其他文本都会不经修改而发送给浏览器。考虑以下代码:
<?php
$num = 3;
echo "<p>$num</p>";
echo '<p>$num</p>';
?>
显示:
·字符串的连接(沿用python等脚本语言的风格)
<?php echo "<p>".'Hello'."</p>"; ?>
·超级全局变量的种类:
·$_GLOBALS —— 所有全局变量数组
·$_SERVERS —— 服务器环境变量数组(比如php.ini里面的配置信息)
·$_GET —— 通过GET方法传递给脚本的变量数组(通过地址栏传地址等等)
·$_POST —— 通过POST方法传递给脚本的变量数组(主要接触的目前只有表单)
·$_COOKIE —— cookie(缓存)变量数组(目前还没用过)
·$_FILES —— 与文件上传相关的变量数组
·$_REQUEST —— 所有用户输入的变量数组,包括$_GET,$_POST和$_COOKIE所包含的输入内容
·测试变量的状态
比较常用的函数有isset,empty,以及unset函数
·isset判断变量是否存在,empty可以判断检查一个变量是否存在,以及它的值是否为非空和非0,而unset函数能够销毁一个变量。
·对于条件选择结构:if(...){...}elseif(...){...} (else和if是连在一块)
Chapter2.文件读和写
文件读写有下面几个步骤:
·打开文件 ·创建并写入文件 ·给文件加锁 ·读文件或写文件 ·关闭文件 ·删除文件
写文件的典型例子:
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //获取www的决定路径
$str = "123";
@ $fp = fopen("$DOCUMENT_ROOT/../string/123.txt",'ab'); //打开文件 flock($fp,LOCK_EX); //给文件加锁,取得独占 fwrite($fp,$str,len($str)); //写文件 flock($fp,LOCK_UN); //给文件解锁 fclose($fp); //关闭文件 ?>
读文件的典型例子:
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; @$fp = fopen("$DOCUMENT_ROOT/../123/123.txt",'rb'); //打开文件 while(!feof($fp))
{
$order = fgets($fp,999); //文件
echo $order."<br />";
} //读文件时不需要锁定文件
fclose($fp); ?>
详细的还是查查手册吧,诸如什么file_exist() , unlink() 都挺重要的。
Chapter3.使用数组
·首先有个array()的构造函数。
·比较多有用的函数(其实跟其他语言的数组差不多啊):sort(),shuffle(),array_reverse(),count(),file()(将文件载入一个数组里面,其中以空格分隔开)
详细的还是查一下手册吧。
Chapter4.字符串操作与正则表达式
关于字符串格式化的函数:
·trim()函数用来整理用户输入的数据,包括除去换行符和回车符(\n和\r),水平和垂直制表符(\t),字符串结束符和空格(\0)
$name = trim($_POST['name']);
·nl2br()函数使用HTML格式化,如果不用的话,输出到浏览器会除掉中间空格。
<p>Your feedback has been sent.</p>
<p><?php echo nl2br($mailcontent); ?></p>
·格式化字符串以便存储——addslashes()函数,以便数据存入数据库
$feedback = addslashes(trim($feedback));
·explode()函数——字符串的分割,PHP5已经开始沿用这个函数来进行字符串的分割成数组,原型如下:
array explode ( string $delimiter
, string $string
[, int $limit
] )
·join()函数 —— 字符串的连接
·strtok()函数
$str
, string $token
)$token
)strtok() 将字符串 str
分割为若干子字符串,每个子字符串以 token
中的字符分割。这也就意味着,如果有个字符串是 "This is an example string",你可以使用空格字符将这句话分割成独立的单词。
注意仅第一次调用 strtok 函数时使用 string 参数。后来每次调用 strtok,都将只使用 token 参数,因为它会记住它在字符串 string 中的位置。如果要重新开始分割一个新的字符串,你需要再次使用 string 来调用 strtok 函数,以便完成初始化工作。注意可以在 token 参数中使用多个字符。字符串将被该参数中任何一个字符分割。
·strtr()函数与strpos()函数——查找子字符串的位置
·strstr()函数的介绍
返回 haystack
字符串从 needle
第一次出现的位置开始到 haystack
结尾的字符串。
Note:
该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
Note:
如果你仅仅想确定
needle
是否存在于haystack
中,请使用速度更快、耗费内存更少的 strpos() 函数。
示例:
<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com $user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?>
·strpos()函数的介绍
返回 needle
在 haystack
中首次出现的数字位置。与 strrpos() 不同,在 PHP 5 之前,该函数可以使用一个完整字符串作为needle
,并且整个字符串都将被使用。
·正则表达式的介绍——呃,这个在Python已经常见了,在这就不怎么介绍了。就介绍ereg()和eregi()(后者不区分大小写)
$pattern
, string $string
[, array &$regs
] )Note:
使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案。
以区分大小写的方式在 string
中寻找与给定的正则表达式 pattern
所匹配的子串。
如果找到与 pattern
中圆括号内的子模式相匹配的子串并且函数调用给出了第三个参数 regs
,则匹配项将被存入 regs
数组中。$regs[1] 包含第一个左圆括号开始的子串,$regs[2] 包含第二个子串,以此类推。$regs[0] 包含整个匹配的字符串。
如果在 string
中找到 pattern
模式的匹配则返回 所匹配字符串的长度,如果没有找到匹配或出错则返回 FALSE
。如果没有传递入可选参数 regs
或者所匹配的字符串长度为 0,则本函数返回 1。
示例:
<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Invalid date format: $date";
}
?>
·更多的还是去翻翻手册吧,不方便详细聊。
Chapter5.代码重用和函数编写
·代码重用的思想在软件工程上经常有所体现,多写写大概就能够领会这种思想了,包括在github的一些开源项目,也是体现代码重用的思想。
·一般的PHP项目当中,会经常新建这样的一个.php文件作为函数库,以便于后面的页面用到这些函数时能够方便调用。
·函数重用,经常使用的函数有require()和include()函数,其变形分别为:require_once()函数和include_once()函数,后者确保一个包含的文件只能被引入一遍。
·关于函数中使用全局变量的方法——关键字global
function fn(){
global $var;
$var = "contents";
echo "<p>$var</p>";
}
基本上就这些,PHP其实面对过程的特点更其他语言差不多。
Chapter6.面向对象的PHP
·关于面向对象这一块,我由于水平有限,所以目前写的代码没怎么用到类,代码也没怎么体现面向对象的思想,所以也无法总结出一些有价值的东西。但是以我之见,面向对象主要还是理解类与对象,继承,派生以及多态等东西吧。更多的还得在后续学习提升自己。
Chapter7.错误和异常处理
没总结。。。。。。
请多多指教!
《PHP和MySQL Web开发》读书笔记(上篇)的更多相关文章
- PHP和MySQL Web开发学习笔记介绍
前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...
- Flask Web开发读书笔记
开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...
- 《PHP与MySQL WEB开发》读书笔记
<PHP与MySQL WEB开发>读书笔记 作者:[美]Luke Welling PHP输出的HereDoc语法: echo <<<theEnd line 1 line ...
- 《PHP和MySQL Web开发》读书笔记(下篇)
又与大家见面了.继续<PHP和MySQL Web开发>的总结. Chapter8.设计Web数据库 ·回去看看数据卡那本书吧,这里就不累赘谈这个东西. Chapter9.创建Web数据库 ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- PHP和MySQL Web开发 原书第4版 高清文字版,有目录,附带源码
PHP和MySQL Web开发 原书第4版:http://yunpan.cn/QCWIS25zmYTAn 提取码 fd9b PHP和MySQL Web开发 原书第4版源码:http://yunp ...
- PHP和MySQL Web开发(原书第4版) 高清PDF+源代码
PHP和MySQL Web开发(原书第4版) 高清PDF+源代码 [日期:2014-08-06] 来源:Linux社区 作者:Linux [字体:大 中 小] 内容简介 <PHP和My ...
- Django Web开发指南笔记
Django Web开发指南笔记 语句VS表达式 python代码由表达式和语句组成,由解释器负责执行. 主要区别:表达式是一个值,它的结果一定是一个python对象:如:12,1+2,int('12 ...
随机推荐
- UTC时间与北京时间
经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...
- Source Insight中的多行注释
转自:http://www.cnblogs.com/dongzhiquan/archive/2013/03/04/2943448.html 我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的 ...
- 转 webpack 插件 svg-sprite-loader
最近开始看 Vue 了,首先用官方的模版把项目快速搭建起来: Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需几分钟即 ...
- scp命令与Screen服务的区别
scp:远程传输命令.(通过网络传送给其他主机,又恰好两台主机都是linux系统,便可以使用scp传输文件) 参数 作痛 -v 先是详细的连接进度 -P 指定远程主机的sshd端口号 -r 传送文件夹 ...
- Delphi 获取Ip地址的方法总结
通过注册表获取或修改Ip 想到Windows会把系统网卡相关信息存入注册表,肯定可通过注册表读取具体ip信息.大致思路是找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...
- java如何写入txt文件
public class TxtWrite { public static void main(String args[]){ contentToTxt("D:\\xyky.txt" ...
- 用go实现的一个堆得数据结构
用golang实现的堆,主要提供了两个方法,push和pop及堆的大小,代码如下: package main import ( "errors" "fmt" ) ...
- 第212天:15种CSS居中的方式,最全了
CSS居中是前端工程师经常要面对的问题,也是基本技能之一.今天有时间把CSS居中的方案整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15种.如有漏掉的,还会陆续的补充进来,算做是一个备忘录 ...
- linq 左连接实现两个集合的合并
//第一个集合为所有的数据 var specilist = new List<Me.SpecificationsInfo>(); var resultall = (from a in db ...
- java将字符串存入GridF并通过id或文件名查询
import static org.bson.codecs.configuration.CodecRegistries.fromProviders; import static org.bson.co ...