沉淀,再出发:PHP的简单使用
一、前言
关于PHP,笔者在本科的时候就听到了太多太多,可惜虽然看了很多的教材,听到了无数遍,也没有系统性的整理过和学习过这方面的知识,这点无论什么时候想起来都是一种遗憾,于是笔者打算总结一下PHP的简单使用。其实对于一门语言的学习来说,只要掌握了语言特性,其他的都是迎刃而解的,语言无外乎顺序、分支、循环语句,这是从功能上面进行划分的,适用于任何的语言,其实学过了编译原理之后,在我们的大脑之中就不应该有语言的概念了,而是应该从更高的层次,从语言的简洁性、可移植性、执行的效率、设计的初衷、方便做的事情、语言之中包含的理念和哲学思维这些方面来思考一门语言的好坏。
二、PHP的基本语法与特性
PHP是一种开源,解释和面向对象的脚本语言运行在服务端。并且具有开源、独立平台、兼容性、嵌入式脚本等特点,越来越多的被用于Web开发。大多数情况下,运行在服务端的PHP脚本要依赖Apache、Nginx这样的Web服务器来运行。PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP 是免费的,并且使用非常广泛。
PHP 代表 PHP: Hypertext Preprocessor PHP 是一种使用广泛的开源的脚本语言 PHP 脚本在服务器上执行 PHP 可免费下载使用 PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码 PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器 PHP 文件的默认文件扩展名是 ".php" PHP 可以生成动态页面内容 PHP 可以创建、打开、读取、写入、关闭服务器上的文件 PHP 可以收集表单数据 PHP 可以发送和接收 cookies PHP 可以添加、删除、修改您的数据库中的数据 PHP 可以限制用户访问您的网站上的一些页面 PHP 可以加密数据
PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
PHP 提供了广泛的数据库支持
PHP 便于于学习,并可高效地运行在服务器
通过 PHP,不再限于输出 HTML。还可以输出图像、PDF 文件,甚至 Flash 电影和任意的文本,比如 XHTML和 XML。
2.0、安装php的IDE
其实很简单,最快捷的方法就是下载一个wamp,这个软件是windows+Apache+mysql+php的缩写,php运行需要一个服务器,并且还需要mysql数据库,而这个软件将这些需要的环境早就集成到一起了,我们可以直接安装和使用。
在使用的时候需要将我们的php文件放到wamp安装目录的www目录之下,这样我们通过浏览器访问localhost+保存的文件夹+文件名就可以了。
2.1、基本的 PHP 语法
PHP 脚本可以放置在文档中的任何位置,以 <?php 开始,以 ?> 结束。PHP 文件的默认文件扩展名是 ".php"。PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <h1>My first PHP page</h1> 6 7 <?php 8 echo "Hello World!"; 9 ?> 10 11 </body> 12 </html>
2.2、变量、定义域
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
PHP 是一门松散类型的语言,PHP 变量规则:
变量以 $ 符号开始,后面跟着变量的名称 变量名必须以字母或者下划线字符开始 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ ) 变量名不能包含空格 变量名是区分大小写的($y 和 $Y 是两个不同的变量) PHP 没有声明变量的命令。 变量在您第一次赋值给它的时候被创建。
PHP 变量作用域:变量的作用域是脚本中变量可被引用/使用的部分。PHP 有四种不同的变量作用域:
local global static parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。
1 <html> 2 <body> 3 4 <?php 5 echo "=======局部和全局作用域======="; 6 echo "<br>"; 7 $x=5; // global scope 8 9 function myTest1() 10 { 11 $y=10; // local scope 12 echo "<p>Test variables inside the function:<p>"; 13 echo "Variable x is: $x"; 14 echo "<br>"; 15 echo "Variable y is: $y"; 16 } 17 myTest1(); 18 echo "<br>"; 19 20 echo "<p>Test variables outside the function:<p>"; 21 echo "Variable x is: $x"; 22 echo "<br>"; 23 echo "Variable y is: $y"; 24 echo "<br>"; 25 26 echo '========PHP global 关键字========='; 27 echo "<br>"; 28 29 $g_x=5; 30 $g_y=10; 31 32 function myTest2() 33 { 34 global $g_x,$g_y; 35 $g_y=$g_x+$g_y; 36 } 37 38 myTest2(); 39 echo $g_y; // 输出 15 40 41 echo "<br>"; 42 echo "==========\$GLOBALS[]==========="; 43 echo "<br>"; 44 /*PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 45 上面的实例可以写成这样:*/ 46 $temp_x=5; 47 $temp_y=10; 48 49 function myTest3() 50 { 51 $GLOBALS['temp_y']=$GLOBALS['temp_x']+$GLOBALS['temp_y']; 52 } 53 54 myTest3(); 55 echo $temp_y; 56 echo "<br>"; 57 58 echo "========Static 作用域========="; 59 echo "<br>"; 60 function add() 61 { 62 static $add_x=0; 63 echo $add_x; 64 echo "<br>"; 65 $add_x++; 66 } 67 68 add(); 69 add(); 70 add(); 71 72 ?> 73 74 </body> 75 </html>
2.3、PHP 字符串变量
PHP 并置运算符:在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。 PHP strlen() 函数:有时知道字符串值的长度是很有用的。strlen() 函数返回字符串的长度(字符数)。 PHP strpos() 函数:strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
addcslashes() 返回在指定的字符前添加反斜杠的字符串。 addslashes() 返回在预定义的字符前添加反斜杠的字符串。 bin2hex() 把 ASCII 字符的字符串转换为十六进制值。 chop() 移除字符串右侧的空白字符或其他字符。 chr() 从指定 ASCII 值返回字符。 chunk_split() 把字符串分割为一连串更小的部分。 convert_cyr_string() 把字符串由一种 Cyrillic 字符集转换成另一种。 convert_uudecode() 对 uuencode 编码的字符串进行解码。 convert_uuencode() 使用 uuencode 算法对字符串进行编码。 count_chars() 返回字符串所用字符的信息。 crc32() 计算一个字符串的 32 位 CRC(循环冗余校验)。 crypt() 单向的字符串加密法(hashing)。 echo() 输出一个或多个字符串。 explode() 把字符串打散为数组。 fprintf() 把格式化的字符串写入到指定的输出流。 get_html_translation_table() 返回 htmlspecialchars() 和 htmlentities() 使用的翻译表。 hebrev() 把希伯来(Hebrew)文本转换为可见文本。 hebrevc() 把希伯来(Hebrew)文本转换为可见文本,并把新行(\n)转换为 <br>。 hex2bin() 把十六进制值的字符串转换为 ASCII 字符。 html_entity_decode() 把 HTML 实体转换为字符。 htmlentities() 把字符转换为 HTML 实体。 htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符。 htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。 implode() 返回一个由数组元素组合成的字符串。 join() implode() 的别名。 lcfirst() 把字符串中的首字符转换为小写。 levenshtein() 返回两个字符串之间的 Levenshtein 距离。 localeconv() 返回本地数字及货币格式信息。 ltrim() 移除字符串左侧的空白字符或其他字符。 md5() 计算字符串的 MD5 散列。 md5_file() 计算文件的 MD5 散列。 metaphone() 计算字符串的 metaphone 键。 money_format() 返回格式化为货币字符串的字符串。 nl_langinfo() 返回指定的本地信息。 nl2br() 在字符串中的每个新行之前插入 HTML 换行符。 number_format() 通过千位分组来格式化数字。 ord() 返回字符串中第一个字符的 ASCII 值。 parse_str() 把查询字符串解析到变量中。 print() 输出一个或多个字符串。 printf() 输出格式化的字符串。 quoted_printable_decode() 把 quoted-printable 字符串转换为 8 位字符串。 quoted_printable_encode() 把 8 位字符串转换为 quoted-printable 字符串。 quotemeta() 引用元字符。 rtrim() 移除字符串右侧的空白字符或其他字符。 setlocale() 设置地区信息(地域信息)。 sha1() 计算字符串的 SHA-1 散列。 sha1_file() 计算文件的 SHA-1 散列。 similar_text() 计算两个字符串的相似度。 soundex() 计算字符串的 soundex 键。 sprintf() 把格式化的字符串写入一个变量中。 sscanf() 根据指定的格式解析来自一个字符串的输入。 str_getcsv() 把 CSV 字符串解析到数组中。 str_ireplace() 替换字符串中的一些字符(大小写不敏感)。 str_pad() 把字符串填充为新的长度。 str_repeat() 把字符串重复指定的次数。 str_replace() 替换字符串中的一些字符(大小写敏感)。 str_rot13() 对字符串执行 ROT13 编码。 str_shuffle() 随机地打乱字符串中的所有字符。 str_split() 把字符串分割到数组中。 str_word_count() 计算字符串中的单词数。 strcasecmp() 比较两个字符串(大小写不敏感)。 strchr() 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。) strcmp() 比较两个字符串(大小写敏感)。 strcoll() 比较两个字符串(根据本地设置)。 strcspn() 返回在找到任何指定的字符之前,在字符串查找的字符数。 strip_tags() 剥去字符串中的 HTML 和 PHP 标签。 stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。 stripslashes() 删除由 addslashes() 函数添加的反斜杠。 stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。 stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。 strlen() 返回字符串的长度。 strnatcasecmp() 使用一种"自然排序"算法来比较两个字符串(大小写不敏感)。 strnatcmp() 使用一种"自然排序"算法来比较两个字符串(大小写敏感)。 strncasecmp() 前 n 个字符的字符串比较(大小写不敏感)。 strncmp() 前 n 个字符的字符串比较(大小写敏感)。 strpbrk() 在字符串中搜索指定字符中的任意一个。 strpos() 返回字符串在另一字符串中第一次出现的位置(大小写敏感)。 strrchr() 查找字符串在另一个字符串中最后一次出现。 strrev() 反转字符串。 strripos() 查找字符串在另一字符串中最后一次出现的位置(大小写不敏感)。 strrpos() 查找字符串在另一字符串中最后一次出现的位置(大小写敏感)。 strspn() 返回在字符串中包含的特定字符的数目。 strstr() 查找字符串在另一字符串中的第一次出现(大小写敏感)。 strtok() 把字符串分割为更小的字符串。 strtolower() 把字符串转换为小写字母。 strtoupper() 把字符串转换为大写字母。 strtr() 转换字符串中特定的字符。 substr() 返回字符串的一部分。 substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。 substr_count() 计算子串在字符串中出现的次数。 substr_replace() 把字符串的一部分替换为另一个字符串。 trim() 移除字符串两侧的空白字符和其他字符。 ucfirst() 把字符串中的首字符转换为大写。 ucwords() 把字符串中每个单词的首字符转换为大写。 vfprintf() 把格式化的字符串写到指定的输出流。 vprintf() 输出格式化的字符串。 vsprintf() 把格式化字符串写入变量中。 wordwrap() 按照指定长度对字符串进行折行处理。