打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
H5学习_番外篇_PHP的入门学习
如果您觉得这篇文章还不错,可以去H5专题中查看更多相关文章。
首先非常抱歉,最近实在太忙,所以导致周六周日拖更,今天白天还忙工作,一直到现在才刚刚把最近学习的东西整理出来。
各位读者老爷,小的真的已经很辛苦了,现在22:17分了,我还在公司坐着,所以下面如果有什么错误的地方,也请各位观众老爷和谐讨论,别喷我。
F8CE58B2-DAA4-4EA0-AC93-B6C431E66C36.png
废话不多说了,直接上正文.
二维码.jpg
PHP学习笔记
2016年03月21日22:20:16
今日课程预览
屏幕快照 2016-03-21 22.18.41.png
屏幕快照 2016-03-21 22.18.49.png
屏幕快照 2016-03-21 22.18.55.png
1. 学习原因
我们为什么需要学习 PHP ?
因为我们以后学习过程中,肯定需要自己去搭建一些比较基础的小项目,而我们个人开发的时候没有后台给我们提供接口,所以我们就需要自己去编写一下接口,同时也为了以后成为全栈工程师打一个基础。
2. 环境的搭建
在1994年,PHP发布了1.0版本。
在1995年,PHP发布了2.0版本,在2.0中支持了 MySQL.
在1997年,PHP发布了3.0版本,加入了 Zeev Suraski 及 Andi Gutmans。
2000年发布的4.0版本。
有人说 PHP 是世界上最好的语言,虽然可能有些片面,但无可否认,PHP 有很多语言的优秀的特点。
源码开放
跨平台
完全免费
关系型数据库
同时也是因为源码开放,我们可以知道在 PHP 中存在 C,Java,Perl等语言的语法,这极大的方便了我们的学习过程。
而且,我们的 PHP 也有很多很便利的配合工具。
MySQL
Apache
XAMPP
我们可以将一个成熟的服务器当作一条生产线,php就像传送带一样,为我们产出数据,Mysql是数据库也就相当于提供原材料,但是传送带却依赖电机这个动力。Apache就相当于一个运行的环境。
其中 MySQL 具有体积小,速度快的优点,同时还是关系型数据库。
Apache是Web服务器软件,它可以运行在几乎所有的计算机平台上面,这是最流行的Web服务器软件之一。
XAMPP是一个功能强大的建 (Apache+MySQL+PHP+Perl) 软件站集成软件包。而且手动安装Apache+MySQL+PHP环境过于复杂,而XAMPP帮我们集成了这个环境,我们只需点击安装即可。
所以我们接下来的学习过程,就以 XAMPP 为基础咯。
需要注意
如果我们在运行过程中,发现我们的 XAMPP 中的 MySQL 启动不起来,我们需要自己手动配置。
方法1:
终端运行 : sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start
方法2:
打开我们的 XAMPP 文件中的 xampp 文件。不同人放置的位置可能不同,根据个人情况设置。
sudo /Applications/XAMPP/xamppfiles/xampp,
之后在 162 行,$XAMPP_ROOT/bin/mysql.server start > /dev/null &
上面添加一句 unset DYLD_LIBRARY_PATH.这样就可以了。
# 自动启动无法完成,添加该配置后可以启动 v.2016.03.21unset DYLD_LIBRARY_PATH#$XAMPP_ROOT/bin/mysql.server start > /dev/null &3. PHP 基础语法
3.1 标记方法
<?php echo “hello php”; ?>
<? echo “hello php”; ?> //短标记
<script language=“php”>echo “hello php”</script>
<% echo “hello php”; %> //asp风格
注: 1,3可以直接使用,但是2,4需要修改php.ini的配置文件才能使用
3.2 注释的方法
单行注释 //
多行注释 /星号 ... 星号/
3.3 变量
3.3.1 变量的声明
变量以$开头,后面跟变量名
变量字母,数字,下划线组成,不以数字开头
变量名区分大小写
php于javascript类似是弱类型语言,不需要实现生命变量的数据类型
php可以不显式的声明变量而直接使用(不过好的编程习惯所有的变量在使用前要进行声明)
$age = 28;$color = “red”;$sum = 15+”12”; //$sum = 27;3.3.2 变量的赋值
值赋值:即将赋值表达式的值复制给变量(直接赋值)
引用赋值:php4引用了引用赋值,创建的一个变量与另一个变量引用的内容相同
$var_1 = “hello”;$var_2 = &$var_1; //把变量var_l的内存地址赋值给var_2,即引用赋值3.3.3 变量的变量
$var_1 = “hello”;$$var_1 = “world”;echo $var_1; //输出helloecho $hello; //输出worldecho ${$var_1} //输出world我们可以尝试一下,发现,我们的第三个属性$var_1输出的也是 world ,这证明,我们的变量也可以重新成为一个变量。
3.3.4 超全局变量
php提供了很多有用预定于的变量,用于提供大量与环境有关的信息
3.3.4.1 $_SERVER
服务器变量, 该全局变量包含着服务器和客户端配置及当前请求环境的有关信息
$_SERVER['SERVER_NAME']; : 当前运行脚本所在的服务器的主机名
$_SERVER['REMOTE_ADDR'] : 客户端IP地址
$_SERVER['REQUEST_URI'] : URL的路径部份
$_SERVER['HTTP_USER_AGENT'] : 操作系统和浏览器的有关信息
3.3.4.2 $_GET
该变量包含使用 GET 方法传递的参数的有关信息
url: http://localhost/test.php?id=100&page=2 $id = $_GET['id']; $page = $_GET[‘page'];3.3.4.3 $_POST
该变量包含使用 POST 方法传递的参数的有关信息;
html: <form name="reg" action="test.php" method="post"> 用户名:<input type="text" name="username" /> 密码: <input type="password” name="passwd"/> <input type="submit" value="提交" /> </form> php: $username = $_POST[‘username’]; $passwd = $_POST[‘passwd’];3.3.4.4 其他方法
$_REQUEST 该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超级全局变量,因为它不安全而且速度比较慢;
$_COOKIE cookie变量数组
$_SESSION 会话变量数组
$_FILES 与上传文件有关的变量数组
$_ENV 环境变量数组
$GLOBALS 所有全局变量数组
3.4 常量
常量是指在程序执行中无法修改的值。如 PI (3.1415926);
在脚本执行期间该值不能改变;
常量对大小写敏感,通常常量名总是大写;
常量是全局的,可以在脚本的任何地方引用;
常量分为内置常量和自定义常量;
常量使用define()函数定义;
define('PI', 3.1415926);echo PI; //3.14159263.4.1 内置常量
PHP_OS php所在操作系统的名称
PHP_VERSION 当前php的版本号
3.4.2 魔术常量
__LINE__ 文件中的当前行号;
__FILE__ 文件的完整路径和文件名;
__FUNCTION__ 函数名称;
__CLASS__ 类的名称;
__METHOD__ 类的方法名;
3.5 数据类型
3.5.1 标量数据类型
3.5.1.1 字符串
字符串有三种定义方式:单引号,双引号,定界符(heredoc);
单引号字符串中出现的变量不会被变量的值替代;
双引号字符串中最重要的一点是其中的变量会被变量值替代;
如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用花括号把变量名括起来。
$beer = "Heineken"; echo "He drank some {$beer}s";3.5.1.2 定界符
字符串定界的方法使用定界符语法 "<<<"
$str = <<<EOD Example of string using heredoc syntax.EOD; echo $str;在PHP定界符中的任何特殊字符都不需要转义
PHP定界符中的PHP变量会被正常的用其值来替换
使用定界符要注意:
结束标识符所在的行不能包含任何其它字符,这意味着该标识符不能被缩进,在分号之前
之后都不能有任何空格或制表符;
3.5.1.3 其他转义符
-字符串转义
\n换行
\r回车
\t水平制表符(tab键)
\(反斜杠)
\$$(美元符)
\”“(双引号)
3.5.1.2 整型(integer)
$age = 25;3.5.1.3 浮点型(float, double)
$num = 5.39;3.5.1.4 布尔型(bool)
$bo = TRUE; $bo = FALSE;3.5.2 符合数据类型
数组
$week = array(‘星期一','星期二','星期三');
对象
$db = new db;3.5.3 特殊数据类型
资源
$fh = fopen("test.txt","r");
null
null 无,表示没有值,null不表示空格,也不表示0;
以下情况,则认为是null:
没有设置为任何预定义的变量;
明确的赋值为null;
使用函数unset()清除;
3.6 自动类型转换
因为php对于类型定义非常的松散,所以有时会根据引用变量的环境,将变量自动转换为最适合的类型;
例1: $num = 5; $str = “15”; echo $num + $str; 例2: $str = “100 hello”; $num = 200; echo $num + $str;例3: $str = '1.2'; if($str){ //if 判断为 true echo 'hello world'; }3.7 类型相关函数
1.gettype() 返回变量的类型,共有8个可能的值 string、integer、float、boolean、array、object、null、unknow
$str = ‘hello’; echo gettype($str);2.is_type() 查看变量是否属于某个类型,是返回 TRUE ,否返回 FALSE;
$arr = array(1); echo is_array($arr); $num = 5; echo is_int($num);3.var_dump() 获取变量的值和类型的详细信息
$str = ‘hello’; var_dump($str); $arr = array(‘A’, ‘B’, ‘C’); var_dump($arr);4. 运算符
4.1 算数运算符
---
+加法运算符$a+$b;
-加法运算符$a-$b;
*乘法运算符$a*$b;
/除法运算符$a/$b;
%取模运算符(求余数)$a%$b;
4.2 赋值运算符
赋值运算符,将一个数据值赋给一个变量;
组合赋值运算符,在赋值之前会完成某个运算;
---
$a = 5赋值
$a += 5加法赋值$a = $a + 5
$a -= 5减法赋值$a = $a – 5
$a *= 5乘法赋值$a = $a * 5
$a /= 5除法赋值$a = $a / 5
$a .= 5拼接赋值$a = $a.5
4.3 字符串运算
字符串运算符用于拼接字符串, 拼接表示将两个或多个对象组合起来;
$a = "hello"; $b = $a . “world"; //.表示拼接前后两个字符串 echo $b; $b = "Hello"; $b .= “World!"; //.= 表示 $b = $b.”World”; echo $b;4.4 自增自减
递增和递减运算符将变量的当前值加1或减1,可以使代码更简洁;
---
++$i先加$i的值加1,然后再返回$i的值;
$i++后加先返回$i的值,然后再将$i的值加1;
--$i先减$i的值减1,然后再返回$i的值;
$i--后减先返回$i的值,然后再将$i的值减1;
4.5 逻辑运算符
利用逻辑运算符可以根据多个变量的值进行判断,这使得控制程序的流程成为可能,逻辑
操作符常用于控制结构中,如if条件和while及for循环;
---
&&AND逻辑与
竖线OR逻辑或
!NOT逻辑非
4.6 比较运算符
比较运算符,返回一个布尔值 TRUE 或 FALSE;
--
>大于
<小于
>=大于或等于
<=小于或等于
!=不等于
<>不等于
==等于
===全等于 (两个比较的内容里,类型也要一样)
!==全不等
4.7 三元运算符
语法:1 ? 2 : 3
$a = 5; $b = 2; $res = $a > $b "yes":"no"; echo $res;4.8 运算符的优先级
所谓运算符的优先级指的是哪一个运算符应该先计算。
具体运算符的优先级,参考php手册;
赋值运算,从右到左
echo 1 + 2 * 3; //outputs 75. 流程控制
5.1 判断语句
5.1.1 If 语句
if( ){ //statement}else if(){ //statement}else{ //statement}If语句用括号中的表达式返回值(true 或 false )来控制是否执行指定的代码程序;
表达式为数字0、空、未定义的字符串,内置常量false都会返回false;
5.1.2 Switch 语句
switch 语句可以看作是if-else组合的一种变体,如果需要比较有限值的变量,通常会使用switch语句;
语法格式: switch (){ case value: //statements break; default: //statements }在每个case块的末尾处都有break语句,如果没有break语句,就会执行所有后续的case块,直到遇到break语句为止;
5.2 循环语句
5.2.1 While
语法格式:
while(){ //statements }例:
$count = 1; While ($count < 5) { echo "$count 平方 = ".pow($count, 2)."<br />"; $count++; }5.2.2 do…while
do…while循环是while的一种变体,它在代码块的结束处验证循环条件;
语法格式:
do { //statements}while();例:
$count = 11;do { echo "$count squared = ". pow($count, 2). "<br />"; $count++;}while($count < 10);5.2.3 for循环
语法格式:
for(1; 2; 3){ //statements}第一个表达式1在第一次循环时计算;
第二个表达式2在每次循环时进行计算,这个表达式确定循环是否继续执行;
第三个表达式exprression3在每次循环结束时计算;
例:
for($i = 1; $i <= 5; $i++){ echo "$i squared = ".pow($count, 2)."<br/>";}5.2.4 跳出循环
break
如果包含一个break语句,将立即结束 while、do…while、for、foreach、switch的执行。
continue
continue语句使当前循环执行结束,并从下一次循环开始执行;
6.函数
函数是用来完成某种特定任务的可重用代码块;
函数可以使程序更具模块化,拥有良好的结构;
函数定义后在程序中可以重复调用;
函数分为内置函数和自定义函数。
6.1 函数分类
内置函数
PHP系统提供了大量功能强大的函数,帮助我们解决各种问题;
创建自定义函数
function function_name(parameters) { //function body }例:
function sayhello(){ echo 'hello'; }6.2 函数简介
函数用function关键字来声明;
函数名称是由字母或下划线开始,中间可以包含数字;
函数名不区分大小写,不过在调用函数的时候,通常使用其在定义时相同的形式;、
php不支持函数重载, 所以自定义函数不能和内置函数重名;
不能在一个文件中自定义同名的函数;
参数出现在括号中,如果有多个参数用逗号分隔;
函数调用
语法格式:
fun_name(parameters);
例:
$val = pow(4, 2);echo pow(3, 3);6.3 函数的区别
注意不同语言的区别:
在Java等强类型语言中方法的名字严格区分大小写;
C语言中的函数也是严格区分大小写;
但PHP到现在的版本,函数名称不区分大小写;
很多语言允许函数(方法)的重载,即函数有相同的名称但是函数参数不同;
PHP不支持函数的重载;
6.4 参数传递
值传递(传值)
函数内对参数值的改变不会影响函数外部的值;
引用传递(传址)
有些情况下,可能希望在函数体内对参数的修改在函数体外也能反映;
使用引用传递参数要在参数前加上&符号;
变量本身传入,传入后的变量与原变量建立联系;
函数体内变量的变化,会影响到原变量本身;
例:
function sum($num_1, $num_2){ $res = $num_1 + $num_2; return $res; }默认参数值:可以为参数指定默认值,在没有提供其他值的情况下,则将默认值自动赋给该参数;
可选参数:可以指定某个参数为可选参数,这些参数需要放在参数列表的末尾,需且要指定其默认值为空;
如果指定了多个可选参数,可以选择性地传递某些参数;
6.5 返回值
通常情况下,只依靠函数做某些事情还不够; 需要将函数的执行结果返回给调用者,这时可以使用 return 语句返回结果;
return 语句变执行后,将使得函数立即结束运行,并且将控制权返回被调用的行;
例:
function mysquare($num){ if($num == ‘’){ return; } $res = $x * $x; return $res; } echo mysquare(4);6.6 递归函数
递归函数是一个可以重复调用自身的函数,直到满足某个条件为止;
递归函数常用来解决一些重复的问题;
递归应该特别注意条件,防止进入死循环中;
例:
function repayment($balance, $payment){ static $count = 1; $newbalance = $balance - $payment; echo $count.' '.$newbalance.'<br>'; if($newbalance > 0){ $count++; repayment($newbalance, $payment); }else{ exit; } } $money = 20000; $month_pay = 1000; repayment($money, $month_pay);6.7 变量作用域和生命周期
由于引入了函数,程序中变量的能见度发生了变化,即变量的作用范围发生了改变;
变量分为:全局变量,局部变量,静态变量;
局部变量,函数体内定义的变量为局部变量,只在函数体内可见;
局部变量的作用域:从声明它的那条语句开始到函数结束;
例:
$str = 'hello php'; echo '1:'.$str.'<br />'; function change(){ $str = 'hello everyone'; echo '2:'.$str.'<br />'; } change(); echo '3:'.$str;6.8 include和require
include()
include()语句将在其被调用的位置处包含一个文件。
例: include(“init.php");
include_once()
include_once()的作用与include()相同,不过它会首先验证是否已经包含了该文件,如果已经包含,则不再执行include_once();
require() 与include() 一样,只不过require()我们通常放在php程序的最前面;
require_once() 与include_once() 一样,但是也要放在php程序的最前面;
include和require的区别
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
7.数组
7.1 数组的概念
数组可以理解为有序的(键-值)对组成的数据值的集合;
如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器;
根据索引值的不同数组分为:索引数组和关联数组;
例:
$day = array(“a”,”a”,”a”); //索引数组$week = array("a"=> "星期一", "b"=>"星期二", "c"=> “星期三"); //关联数组7.2 数组的创建
7.2.1 使用array()函数
array array ( [mixed ...] )
例:
$arr = array(); $fruits = array("orange", "apple", "banana"); $languages = array("en"=> "english", "cn"=> "china");与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小;
因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;
索引可以是整型数字或者是字符串;
索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;
关联数组:索引为字符串的数组;
7.2.2 直接对数组变量赋值
$arr[key] = value;
例:
$fruits[] = "orange"; $fruits[] = "apple"; $languages["en"] = "english"; $languages["cn"] = "china";如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。
如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。
7.2.3 使用函数创建数组
range() 建立一个包含指定范围单元的数组
例:
$num = range(1, 100); print_r($num); $letter = range('a','I'); print_r($letter);7.3 数组的基本操作
unset() 释放给定的变量
print_r() 打印数组
count() 取得数组大小
in_array() 检查数组中是否包含某个值
7.4 遍历数组
for 循环遍历数组
使用数组指针遍历数组
key() 返回数组当前指针元素的索引;
current() 返回数组当前指针元素的值;
next() 将数组指针向前移动一位,并返回当前指针元素的值; 如果超出了数组元素的末尾,则返回FALSE
prev() 将数组指针往回移动一位, 并返回当前指针元素的值; 如果指针本来就位于数组的第一个位置则返回FALSE;
reset() 将指针指向第一个元素,并返回第一个元素的值
end() 将数组指针指向最后一个元素, 并返回最后一个元素的值;
each() 返回数组当前指针元素的键和值,并将指针推进一个位置;如果内部指针越过了数组的末端,则 each() 返回 FALSE。
list() 把数组中的值赋给一些变量;
foreach 循环遍历数组
例1:
$fruits = array('apple', 'banana', 'orange'); echo current($fruits ); each($fruits ); //使用each()推进指针向前一步 echo current($fruits ); next $fruits ); //也可以使用next() 推进指针向前一步 echo current($fruits ); end($fruits ); //将数组指针指向最后一个元素 print_r(each($fruits)); list($val1, $val2, $val3) = $fruits; echo $val1; echo $val2; echo $val3;例2:
$fruits = array('apple', 'banana', 'orange'); do{ echo key($fruits). '=> '.current($fruits); }while(next($fruits)); while($arr = each($fruits)){ echo $ arr['key'].''.$arr['value']; } while(list($key, $value) = each($fruits)){ echo $key.''.$value; }7.5 二维数组
数组元素的值也可以是数组;
例:
$result = array( array( 'pname'=> 'nokia n73', 'price'=> 1500, ), array( 'pname'=> 'nokia 5800', 'price'=> 2000, ), );遍历二维数组:
foreach($products as $product_k=>$product_v){ foreach($product_v as $key=>$val){ echo $key.'=>'.$val; } }7.6 数组字符串转换
explode() 返回由字符串组成的数组
例:
$str = "1,2,3,4,5,6"; $arr = explode(',', $str); print_r($arr);implode() 将数组元素连接成字符串
例:
$arr = array('a','b', 'c', 'd'); $str = implode('|', $arr ); echo $str;8. 字符串
8.1 输出字符串
echo
void echo ( string arg1 [, string ...] )
是一个语法 ,不是函数
echo 没有返回值;
echo 可以输出多个值,使用逗号分隔;
例:
$val = "world"; echo "hello", $val;print
int print ( string arg ) 实际上不是一个函数(它是一个语言结构)
例:
print ("hello $val"); print "hello world”;printf()
功能:格式化输出字符串;
int printf ( string format [, mixed args [, mixed ...]] )
--
%b二进制输出brianry
%d整数输出data
%f浮点数输出float
%s字符串输出string
例:
$str = "123 test"; printf("整数:%d", $str); printf("浮点数:%.2f", $str); printf("字符串:%s", $str);sprintf()
功能与printf相同,但不会直接输出结果;
string sprintf ( string format [, mixed args [, mixed ...]] )
例:
$str = "123 test"; $val = sprintf("%d", $str); echo $val;8.2 查找与替换
strpos()
int strpos ( string haystack, mixed needle [, int offset] )
strpos()函数在 haystack 中以区分大小写的方式找到 needle 第一次出现的位置;
如果没有找到则返回FALSE;
可选参数offset 指定开始查找的位置;
例:echo strpos("Hello world!","wo");
stripos()
stripos()与strpos()功能相同,只是查找时不区别大小写;
str_replace()
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
str_replace()函数在subject中以区分大小写的方式搜索 search ,
用replace替换找到的所有内容; 如果没有找到search,则subject保持不变;
如果定义了可选参数 count 则只替换subject中count个search
例:
$str = "test@163.com"; $email = str_replace("@", "(at)", $str); echo $email;
str_ireplace()
str_ireplace()与str_replace()功能相同,只是不区分大小写;
8.3 截取与字符串
substr()
string substr ( string string, int start [, int length] )
从start位置取出length长度的字符,字符串位置开始值为零;
如果没有指定length,那么默认一直到字符串末尾;
例:
echo substr("Hello world", 6);echo substr("hello world", 6, 5);
strstr()
string strstr ( string haystack, string needle )
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串则返回
fas。?
例:echo strstr("Hello world!","world");
stristr()
stristr()与strstr()功能相同,只是不区分大小写;
例: echo strstr("Hello world!","WORLD");
8.4 删除字符串
ltrim()
string ltrim ( string str [, string charlist] )
ltrim 函数删除字符串左侧空格或其他预定义字符;
如果未设置charlist参数,则删除以下字符:
-|-
:--|:--
"\0" |NULL
"\t" | 制表符
"\n" |换行
"\x0B" |垂直制表符
"\r" |回车
" " |空格
rtrim()
string rtrim ( string str [, string charlist] )
rtrim 函数删除字符串右侧空格或其他预定义字符;
trim()
trim 函数删除字符串两侧空格或其他预定义字符;
8.5 其他函数处理
strlen() 获取字符串长度
例:
$passwd = "123456"; if(strlen($passwd) < 8){ echo "密码不能少于8位"; }
strtolower() 将字符串转换为小写字母
例:
$url = "HTTP://WWW.WENDOWS.COM/ "; echo strtolower($url);
strtoupper() 将字符串转换为大写字母
例:
$str = "中文 hello world"; echo strtoupper($str);
strrev() 反转字符串
例:
$str = "hello world"; echo strrev($str);
nl2br() 将字符串中换行 (\n) 转换成 HTML 换行标签 (
)
例:
$str = "hello world"; echo nl2br($str);
strip_tags() 删除字符串中HTML XML PHP 标签
string strip_tags ( string str [, string allowable_tags] )
可选参数 allowable_tags 指定要保留的标签;
例:
$str = "test <a href="http://www.163.com">163</a>"; echo strip_tags($str);
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体
预定义的字符是:
-|-|-
:--|:--|:--
& |(和号) | 成为 &
" |(双引号)| 成为 "
' |(单引号)| 成为 '
< |(小于) | 成为 <
> |(大于) | 成为 >
例:
$str = "<p> 这是一个段落 </p>"; echo htmlspecialchars($str);
9. Ajax基础
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> window.onload = function(){ var ajax = null; if (window.XMLHttpRequest) { ajax = new XMLHttpRequest(); } else { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } ajax.open('127.0.0.1/lesson3.php?name=xiaopang',true); //发送请求 ajax.send(); //响应回调 ajax.onreadystatechange = function(){ //readyStatue 表明服务器接到响应 //state 是服务器的状态 if (ajax.readyStatue == 4 && (ajax.state >=200 || ajax.state<300 ||ajax.state == 304)) { document.innerHTML = ajax.responseText; } } } </script></head><body></body></html>10.今日学习代码记录(仅作记录作用,无须查看)
<?php/*//最常用的 PHP 标记//标记内部表明是 PHP 环境//第一个变量 //以 $ 开头,数字字母下划线组成,并且不能用数字作为变量开头。 //而且区分大小写。 $age = 34; //引用赋值,可以理解为两个变量用的一块控件 //我们一般将 “ & ” 叫为取址符 $age1 = &$age1; //输出 echo($age1); //变量的变量 $var_1 = "hello"; $$var_1 = "world"; echo $var_1; //hello echo $$var_1; //world echo $hello; //world 变量的变量也可以成为变量 var_1 //识别 HTML 标签 echo "<br />"; // echo $_SERVER["SERVER_NAME"]; *///=======================================================================// 超全局变量//======================================================================= //$_GET 获取 get 请求的参数(前后端命名一定要一致) // echo $_GET["username"]; // echo $_GET["password"]; //$_POST 获取 post 请求的参数 // echo $_POST["username"]; // echo $_POST["password"];//=======================================================================// 常 量//======================================================================= //自定义常量,在其他语言里面页脚宏定义 // define('PI', 3.1415928); // echo PI; //魔术常量 // echo __LINE__; //显示当前代码是多少行//=======================================================================// 数据类型//======================================================================= //单双引号的区别 // $name = "pang"; //双引号中默认是不识别的,判定为字符串 // echo "my name is $name"; //单引号不会替换变量,默认内容是字符串 // echo 'my name is $name'; //如果你想要将一个变量替换至字符串中,你需要使用 {} 去包裹起来内容 // echo "my name is {$name}asdasdasdasda"; //定界符 结束符 以'<<<EOD'开头,以‘EOD’结尾,并且结尾符号一定要存在于换行的开头 //主要用于 分隔字符// $str = <<<EOD// duang,duang,duang// EOD;// echo $str; //字符串的转义 // $str = "str\$"; // echo $str; //自动类型转换 //字符串与数字相加,字符串转化规则,从第一位去取,直到取到一个非数字时结束。 // $name = "pang"; // $age = 18; // echo $name.$age; //pang18 // echo $name+$age; //18 从开始取数字转化为整型,到非数字时停止 //类型相关函数 //gettype() 获取数据类型 // $str = "nihao"; // $age = 19; // echo gettype($str); // echo gettype($age); //is_interger() 确定该数据是否是某类型 // $str = "nihao"; // echo is_integer($str); // echo is_string($str); //var_dump() 打印详细数据信息 // $str = "nihao"; // var_dump($str); //string 5 "nihao"//=======================================================================// 运算符//======================================================================= //拼接赋值 $str = $str.20 // $str .=20; // echo $str; //递增递减 //++在前,执行运算前先自身加一 //++在后,先运算完成,再加一 // $age1 = 20; // $age2 = $age1++; // $age3 = ++$age1; // echo $age1; //20 // echo $age2; //20 // echo $age3; //22 //三目运算符 //前面表达式为真,则取前面的值,如果为假,则去后面的值 // $a = 20; // $b = 15; // $is_ture = $a > $bTRUE:FALSE; // echo $is_ture;?><?php//=================================================// 循环//=================================================//分支结构//if..else..// if (判断语句) {// # code...// }elseif (判断语句) {// # code...// }// else{// # code...// }//下面来看一个很特殊的小栗子。//我们在 if 内部去写一个永远成立的式子。//之后我们在内部去做++,但是我们出来之后,//发现出来 A 的值 是 1. B 的 值里面是 31.//我们也能看见 a 的类型变成了 BOOL 类型。//所以我们怎么++ , a 的值还是1,大家需要注意一下(判断使用 == 式子就正确了)// $a = $b = 30;//// if ($a = 30 || $b = 30){// $a++;// $b++;// }// var_dump($a);// var_dump($b);// echo $a;// echo "<hr>";// echo $b;//switch case// switch ($a) {// case '30':// # code...// echo "变量 $a 等于 30,走这里";// break;// default:// # code...// echo "上面结果全部不符合才走这里"// break;// }//for// for ($i=0; $i < 10; $i++) {// # code...// echo "我是第{$ i}次<br>";// }//跳出循环 break continue// for ($i=0; $i < 10; $i++) {// # code...// if($i == 5){// echo "我是第{$ i}次<br>";// continue;// }// echo "我是第 {$i}次循环";// }////=================================================// 函数//=================================================//function + 函数名 +(参数列表){// 函数体//}//function sum($a,$b){// echo $a + $b;// //return 的函数返回值// return $a + $b;//}//sum(3, 5);//函数参数有默认值,如果调用的时候不传值,会直接使用默认值//function funName($value='345'){// echo $value;//}//funName();//递归函数//自己调用自己,并且首先返回最后一次结果,之后依次返回//function fun($n) {// if ($n == 1) {// return 1;// }// $number = $n * fun($n - 1);// return $number;//}//echo fun(5);//变量分为局部变量,全局变量和静态变量//function sum($a){// //局部变量 : 函数调用结束后立马释放// $b = 5;// $b++;// echo $b;// // //静态变量 : 只能初始化一次,静态变量不会立马释放// static $c = 10;// $c++;// echo $c;//}//sum();//sum();//sum();//=================================================// 变量//=================================================//全局变量 : 声明在函数外,全局都可以访问//$name = "asdasda";//function dosomething(){// echo $GLOBALS['name'];//}//=================================================// 数组//=================================================//关联数组,类似于 oc 中的字典//$arr = array('name' => 'xiaopang','age' => 'woman') ;////索引数组//$arr_1 = array('23','4234','234');////echo $arr['name'];//var_dump($arr);//echo $arr_1[0];//var_dump($arr_1);////使用系统函数初始化创建数组////直接赋值生存数组,索引值可以自定义//$arr_2[0]="asd";//var_dump($arr_2);////$arr_3['name'] = "qweqwe";//var_dump($arr_3);////只能识别数字或者字符,字符串默认取第一位,如果是英文字符,则默认是 0 //$lists = range(100, 1);//print_r($lists); //打印数组//unset($lists); //释放数组////foreach 遍历数组//$arr = array('name'=>'xiaopang','age'=>18);//foreach($arr as $key =>$value){// echo $key,$value;//}////数组的排序//$arr = array('name'=>'xiaopang','age'=>18,'height'=>187);////sort()排序 如果是字符串就按照 ascii 排序,如果是数字就直接排序,如果有数字,有字符串,数字大于字符串,且字符串按照 ascii 排序//$arr_2 = sort($arr);//print_r($arr);////rsort()降序////ksort()按照键值 升序排序////ksort()按照键值 降序排序////=================================================//// 字符串////=================================================////查找字符串,并且返回当前下标,区分大小写//$s = strpos("asdaasdasdasd", 'asd');//echo $s;////stripos 和 strpos 功能一致,只是不区分大小写//////字符串替换//$str1 = str_replace('3g', 'keji', $str);//echo $str1;////str_ireplace($search, $replace, $subject) 和 str_replace 功能一致,只是不区分大小写?>
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PHP面试题目总结归纳
php基础教程-变量
php、json
preg 函数
php基础函数数组函数字符串函数
php将指定字符串替换的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服