php入门笔记1


PHP 语法基础.

一、php标记与注释.

1.php标记.

​ php是嵌入式脚本语言,它经常会和HTML内容混编在一起,因此为了区分HTML与PHP代码,需要使用标记将PHP代码包裹起来。

标记类型 开始标记 结束标记
标准标记 <?php ?>
短标记 <? ?>
ASP风格标记 <% %>
脚本风格标记
  • 标记语言是PHP中最常用的标记,当一个文件是纯PHP代码时,可省略结束标记,且开始标记最好顶格写。
  • 其他三种标记,在实际开发中很少使用

2.PHP注释.

>单行注释  //
>
>多行注释 /* */

二、标识符与关键字.

1.标识符.

​ 在程序开发中,经常需要定义一些符号来标记一些名称,如变量名、常量名、函数名、类名等

规则.
  • 只能由字母、数字和下划线组成
  • 必须以字母或下划线开头
  • 用作变量名时,区分大小写
  • 若由多个单词组成,就以下划线分隔

2.关键字.

​ 编程语言中事先定义好并赋予了特殊含义的单词,也称作保留字

and or xor _FILE_ exception
_LINE_ array() As break case
class const continue declare default
die() do echo else elseif
empty() enddeclare endfor endforeach endif
endswitch endwhile eval() exit() extends
for foreach function global if
include include_once isset() list() new
print require require_once return static
switch unset() use var while
_FUNCTION_ _CLASS_ _METHOD_ final php_user_filter
interface implements extends public private
protected abstract clone try catch
throw this

三、变量与常量.

1.变量.

​ 变量就是保留可变数据的容器。

​ PHP中,变量由$与变量名组成,如:$online 、$_online

php是弱类型语言,所以变量不需要事先声明,就可以进行赋值使用

  • PHP赋值方式

    • 传值赋值(默认)
    • 引用赋值

    ​ 引用使用时只需要在变量前添加 “ & ”符号即可,如$n = &$num

2.可变变量.

​ 通过可变变量,可以将另一个变量的值作为该变量的名称

​ 可变变量只需在一个变量前多加一个美元符号$

<?php
    $a = 'hello';
    $hello = "world";

    echo $a;//hello
    echo $$a;//world
?>

==注意:在当 $a 的值是数字 时,$$a会出现非法变量名的情况==

3.常量.

​ 常量用于保存在脚本运行过程中值始终保持不变的量,它的特点是一旦被定义就不能被修改或重新定义

  • 常量的定义方式:

    • define() 函数
    • const关键字

    ①define()函数

    define('CON', 'php'); //定义名称为CON的常量,其值为php 
    echo CON;         //输出结果为:php
    // 输出常量也可是下面方式
    echo constant('CON');  //php

    ②const关键字

    const PAI = 3.14; //定义名字为PAI的常量,其值为3.14
    echo PAI;          //输出结果为:3.14

4.预定义变量.

​ 预定义常量是指PHP预先定义好的常量,用于获取PHP中的相关信息,方便开发。
在需要时可直接在程序中使用

echo PHP_VERSION;       //用于获取PHP的版本信息
echo PHP_OS;            //用于获取解析PHP的操作系统类型

四、数据结构.

1.布尔型.

​ true 和 false

2.整型.

​ 八进制(oct):07

​ 十进制(dec):9

​ 十六进制(hex):0xF

3.浮点型.

标准格式:
    $fnum = 3.14
科学计数法:
    $fnum = 314E-2

// 不管采用哪种格式 浮点数的有效位都是14位
// 有效位: 从左边第一个不为0的数开始,直到末尾数的 个数,不包含小数点

4.字符串型.

  • 使用单引号或双引号表示字符串

注意:变量在双引号字符串中被解析

变量在单引号字符串中原样输出

  • 在字符串中可以使用转义字符。例如:

            **双引号字符串中使用双引号时,可以使用 “ \\"  ”来表示。**
                  **单引号字符串只支持“ ' ”和“ \ ”的转义。**
  • 在双引号字符串中输出变量时,有时会出现变量名界定不明确的问题,对于这种情况,可以使用{}来对变量进行界定。

    $str = 'php';
    echo "世界上最好的语言是{$str}?";   //输出结果为:世界上最好的语言是php?

五、查看数据类型.

​ PHP是弱类型语言,变量的数据类型会随程序的流程而改变。为了方便调试程序,PHP提供了var_dump()函数用于查看变量的值和数据类型

<?php
    $num = 1;
    $fnum = 3.14;
    $bool = false;
    $str = 'hello world';

    var_dump($num);
    var_dump($fnum);
    var_dump($bool);
    var_dump($str);
?>

使用print_r()打印变量易于理解的信息

六、运算符.

1.算术运算符.

运算符 意义 范例 结果
+ 5+5 10
- 6-4 2
* 3*4 12
/ 5/5 1
% 取模(即算术中的求余数) 5%7 5

2.赋值运算符.

运算符 意义 范例 结果
= 赋值 $a=3; ​$b=2; $a=3; ​$b=2;
+= 加等于 $a=3; $b=2; $a+=$b; $a=5; ​$b=2;
-= 减等于 $a=3; ​$b=2; $a-=​$b; $a=1; $b=2;
*= 乘等于 $a=3; ​$b=2; $a*=​ $b; $a=6; ​$b=2;
/= 除等于 $a=3; ​$b=2; $a/= $b; $a=1.5; ​$b=2;
%= 模等于 $a=3; ​$b=2; $a%= $b; $a=1; ​$b=2;
.= 连接等于 $a=’abc’; ​$a .= ‘def’; $a=’abcdef’

3.比较运算符.

运算符 运算 范例($x=5) 结果
== 等于 $x == 4 false
!= 不等于 $x != 4 true
<> 不等于 $x <> 4 true
=== 恒等 $x === 5 true
!== 不恒等 $x !== ’5’ true
> 大于 $x > 5 false
>= 大于或等于 $x >= 5 true
< 小于 $x < 5 false
<= 小于或等于 $x <= 5 true
  • 对于两个数据类型不相同的数据进行比较时,PHP会自动将其转换成相同类型的数据后再进行比较。
  • 运算符==”和“!=”运算符在比较时,只比较其值是否相等。
  • 运算符“===”与“!==”在进行比较时,要比较数值和其数据类型是否相等。

4.逻辑运算符.

运算符 运算 范例 结果
&& $a && $b a和​b都为true,结果为true,否则为false
|| $a || $b a和​b中至少有一个为true,则结果为true,否则为false
! !$a 若a为false,结果为true,否则相反
xor 异或 $a xor $b a和​b一个为true,一个为false,结果为true,否则为false
and $a and $b 与&&相同,但优先级较低
or $a or $b 与||相同,但优先级较低
  • && 和 ||的优先级高于 and 和 or

5.递增递减运算符.

运算符 运算 范例 结果
++ (前)自增 $a=2; $b=++$a; $a=3; $b=3;
++ (后)自增 $a=2; ​$b=$a++; $a=3; ​$b=2;
- - (前)自减 $a=2; $b=–$a; $a=1; ​$b=1;
- - (后)自减 $a=2; $b=$a–; $a=1; $b=2;

七、表达式.

.

八、运算符优先级.

结合方向 运算符
new
[
++ – ~ (int) (float) (string) (array) (object) @
Instanceof
!
* / %
+ - .
<< >>
== != === !== <>
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <<= >>=
and
Xor
Or
,
  • 同一行的运算符具有相同的优先级
  • 左结合方向表示同级运算符的执行顺序为从左到右
  • 右结合方向则表示执行顺序为从右到左
  • 补充:圆括号()优先级别最高

九、数据类型转换.

1.自动类型转换.

​ 自动类型转换,指的是当运算需要或与期望的结果类型不匹配时,PHP将自动进行类型转换,无需编程人员做任何操作

4种:①转换成布尔型 ②转换成整型 ③转换成浮点型 ④转换成字符串型

/* 字符串 --> 整型 */
//比较“888php”与888是否相等
var_dump('888php' == 888);   //输出结果:bool(true)
//比较“php888”与888是否相等
var_dump('php888' == 888);   //输出结果:bool(false)

var_dump('php888' == 0); //输出结果:bool(true)
//这个是因为 字符串转换为 整型时 如果 字符串以数字开头,则使用 该数值 否则转换为零

2.强制类型转换.

​ 强制类型转换,就是根据编程需求手动转换数据类型,在要转换的数据或变量之前加上“(目标类型)”即可

强制类型 功能描述 范例 var_dump()打印结果
(bool) 强转为布尔型 (bool)-5.9 bool(true)
(string) 强转为字符串型 (string)12 string(2) “12”
(integer) 强转为整型 (integer)’hello’ int(0)
(float) 强转为浮点型 (float)false float(0)
(array) 强转为数组 (array)’php’ array(1) { [0]=> string(3) “php” }
(object) 强转为对象 (object)2.34 object(stdClass)#1(1){[“scalar”]=>float(2.34}

十、流程控制语句.

1.顺序结构(略).

2.选择结构.

注意与java不同

​ ①if 语句

image-20200520151143095

​ ②if…else…语句

​ 三目运算符

​ ③if…elseif…else… (其中 elseif 可存在多个; else 与 if之间没空格; else不能省略;大括号可以省略,但当有大括号时,大括号与if这些关键字之间不能有空格)

​ ④switch语句

​ 略

3.循环结构.

​ ①while循环语句

​ ②do…while循环语句

​ ③for循环语句

流程跳转语句.

​ break;continue

break n; //跳出 n重循环

十一、替换语法.

​ 当大量的HTML与PHP代码混合编译时,为了方便区分流程语句的开始和结束位置,可以使用PHP提供的替代语法进行编码。
​ 其基本形式就是把if、while、for、foreach、switch这些语句的左花括号({)换成冒号(:),将右花括号(})分别换成“endif;”、“endwhile;”、“endfor;”、“endforeach;”和“endswitch;”。

1~99之间的偶数:
<ul>
<?php for($i=1;$i<100;++$i): ?>
        <?php if($i%2 == 0): ?>
            <li><?=$i;?></li>
        <?php endif; ?>
<?php endfor; ?>
</ul>

”是短标记输出语法,自 PHP 5.4起,这种语法在短标记关闭的情况下仍然可用。
因此,在HTML嵌入PHP变量使用这种简写形式将会非常方便。

十二、函数.

函数:就是程序中用来实现特定功能的代码段,避免代码的重复书写。
自定义函数:就是开发人员可根据实际功能编写的代码段。

1.自定义函数.

function 函数名( [参数1, 参数2, ……] ){
       函数体
}

函数名的命名规则与标识符相同,函数名 不区分大小写,且是唯一的

(其变量是区分大小写的)

#返回值处理
return $var;

可选参数.

function test($a, $b='world'){//$b 是可选参数
      return $a.$b;        //拼接两个字符串
}
echo test('hello');       //输出结果:helloworld

注意:可选参数必须放在必选参数的后面

函数中变量的作用域.

通常情况下,为避免变量命名冲突,函数内的变量与函数外的变量不能互相访问

因此,变量在它的作用范围内才可以使用,这个作用范围称为变量的作用域。
其中,在函数中定义的变量称为局部变量,仅能在函数内使用,当函数执行完成后被释放;在函数外定义的变量称为全局变量,正常情况下仅可在函数外使用。

函数中使用全局变量的方法:

$var = 100;    //在此处定义变量$var
$str = 'php';     //在此处定义变量$str
function test(){
     //方式一:利用global关键字取得全局变量
     global $var;
     echo '全局变量$var:'.$var;
     //方式二:利用$GLOBALS['变量名']访问
     echo '全局变量$str:'.$GLOBALS['str'];
}
test();

2.可变函数.

  • PHP 支持可变函数,这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。
  • 值得一提的是,变量的值可以是用户自定义的函数名称,也可以是PHP内置的函数名称,但是变量的值必须是实际存在的函数的名称。
function test(){
      echo 'running....';
}
$funcname = 'test';     //定义变量,其值是函数的名称
echo $funcname();    //利用可变变量调用函数

可变函数可以增加程序的灵活性,但是滥用可变函数会降低PHP代码的可读性,使程序逻辑难以理解,给代码的维护带来不便,所以在编程过程中尽量少用可变函数。

3.匿名函数.

​ 匿名函数就是没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。对于临时定义的函数,使用匿名函数无需考虑函数命名冲突的问题。

//匿名函数的使用

$sum = function($a, $b){  //定义匿名函数
      return $a + $b;
};
echo $sum(100, 200);      //输出结果:300

需要注意的是,此种匿名函数调用的方式看似与可变函数的使用类似,但实际上不是,可通过var_dump()对匿名函数的变量进行打印输出,可以看到其数据类型为对象类型

//匿名函数中使用 外部变量
$c = 100;
$sum = function($a, $b) use($c){
      return $a + $b + $c;
};
echo $sum(100, 200);  //输出结果:400

在匿名函数使用的外部变量需先在函数声明前进行定义
定义匿名函数时,添加use(变量名[,变量名])即可。

//匿名函数的其他用法
function calculate($a, $b, $func){
      return $func($a, $b);
}
echo calculate(100, 200, function($a, $b){
      return $a + $b;
});  //输出结果:300

匿名函数还可以作为函数的参数传递,实现回调函数。
极大增强了函数的灵活性。

可变与匿名.

//可变
function a(){
    echo "这是函数a";
}
$b = 'a';

echo $b;//a
echo $b();//这是函数a
echo var_dump($b);//显示结果 : string(1) "a"
echo var_dump($b());//显示结果 : 这是函数aNULL
//匿名函数
$b = function(){
    echo "这是匿名函数";
};//这是个语句

echo $b();//这是匿名函数
echo var_dump($b);//显示结果 object(Closure)#1 (0) {}
echo var_dump($b());//这是匿名函数NULL

十三、数组.

与java中数组不同

​ php的下标(键) 可以是 字符串类型

​ 键和值之间 使用 => 连接数组

1.数组类型.

  • 索引数组:下标为整型的数组
  • 关联数组:下标为字符串的数组

2.定义数组.

//定义索引数组
$arr = array('one','two');
$arr = array(1=>'one',4=>'four')

//定义关联数组
$arr = array('id'=>1 , 'name'=>'lmk');

//定义空数组、混合型数组
$empty = array();

$mixed = array(1,'two',4);
$mixed = array('one'=>1,2=>'two','three') //three 的键为3

从PHP 5.4版本起,新增了定义数组的简写语法“[ ]”,使用 “[ ]”定义数组的语法与“array()”语法类似,书写更加方便。

$color = ['red','blue']
$arr = ['one'=>1,'two'=>2]

数组元素的下标只有整型和字符串两种类型,如果有其他类型,则会进行类型转换。
在PHP中合法的整数值下标会被自动的转换为整型下标。
若数组存在相同的下标时,后面的元素值会覆盖前面的元素值。

3.访问数组.

//定义数组
$info = ['id'=>1, 'name'=>'Tom'];

//方式一:通过键名访问元素
echo $info['name'];     //输出结果:Tom
$var = 'id';              //也可以使用变量的值作为键名
echo $info[$var];        //输出结果:1

//方式二:通过print_r()或var_dump()
print_r($info);       //输出结果:Array( [id]=> 1 [name]=> Tom )
var_dump($info); //输出结果:array(2){ ["id"]=> int(1) ["name"]=> string(3)"Tom" }

4.数组赋值.

$arr = [];            //定义数组(此步骤也可以省略)
$arr[] = 'PHP';        //等价于:$arr[0] = 'PHP'
$arr[] = 'Java';             //等价于:$arr[1] = 'Java'
$arr[5] = 'C语言';           //等价于:$arr[5] = 'C语言';
$arr['sub'] = 'iOS';         //等价于:$arr['sub'] = 'iOS';
$arr[] = 'HTML';              //等价于:$arr[6] = 'HTML'
$arr[6] = 'JavaScript';    //修改数组,替换已经存在的元素


$arr = [0=>'PHP', 1=>'Java', 5=>'C语言', 'sub'=>'iOS', '6'=>'JavaScript']

5.数组删除.

unset()函数用于删除一个变量,也可以用于删除数组中的某个元素

$color=['red','blue']

//删除数组单个元素
unset($color[0]);
print_r($color)

//删除整个数组
unset($color)
print_r($color)

6、数组遍历.

foreach()语句

$color = ['red','blue'];

//遍历 key value
foreach($color as $key=>$value){
    echo $key.'-'.$value.'  ';
}
echo "\n";
//遍历 value
foreach($color as $value){
    echo $value.'  ';
}

十四、PHP内置函数.

字符串函数.

函数名 功能描述
strlen() 获取字符串的长度
strrpos() 获取指定字符串在目标字符串中最后一次出现的位置
str_replace() 用于字符串中的某些字符进行替换操作
substr() 用于获取字符串中的子串
explode() 使用一个字符串分割另一个字符串
implode() 用指定的连接符将数组拼接成一个字符串
trim() 去除字符串首尾处的空白字符(或指定成其他字符)
str_repeat() 重复一个字符串
//① 字符串分割成数组
var_dump(explode('n', 'banana'));
//输出结果:array(3){ [0]=> string(2) "ba" [1]=> string(1) "a" [2]=> string(1) "a" }

//② 分割时限制次数
var_dump(explode('n', 'banana', 2));
//输出结果:array(2){ [0]=> string(2) "ba" [1]=> string(3) "ana" }

//③ 返回除了最后2个元素外的所有元素
var_dump(explode('n', 'banana', -2));
//输出结果: array(1){ [0]=> string(2) "ba" }

数组函数.

函数名 功能描述
count() 用于计算数组中元素的个数
range() 用于建立一个包含指定范围单元的数组
sort() 对数组排序
rsort() 对数组逆向排序
ksort() 对数组按照键名排序
krsort() 对数组按照键名逆向排序
array_search() 在数组中搜索给定的值
array_unique() 移除数组中重复的值
array_column() 返回数组中指定的一列
array_keys() 返回数组中的键名
array_merge() 用于合并一个或多个数组
array_chunk() 可以将一个数组分割成多个
asort() 对数组进行排序并保持索引关系
arsort() 对数组进行逆向排序并保持索引关系
shuffle() 打乱数组顺序
array_reverse() 返回一个单元顺序相反的数组
array_rand () 从数组中随机取出一个或多个单元
key() 从关联数组中取得键名
in_array() 检查数组中是否存在某个值
array_values () 返回数组中所有的值

数学函数.

函数名 功能描述
abs() 绝对值
ceil() 向上取最接近的整数
floor() 向下取最接近的整数
fmod() 返回除法的浮点数余数
is_nan() 判断是否为合法数值
max() 返回最大值
min() 返回最小值
pi() 返回圆周率的值
pow() 返回x的y次方
sqrt() 平方根
round() 对浮点数进行四舍五入
rand() 返回随机整数

日期函数.

Unix时间戳是一种时间表示方式,定义了从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。其中,1970年01月01日零点也叫作Unix纪元。

函数名 功能描述
time() 返回当前的 Unix 时间戳
date() 格式化一个本地时间/日期
mktime() 取得一个日期的 Unix 时间戳
strtotime() 将字符串转化成Unix时间戳
microtime() 返回当前 Unix 时间戳和微秒数

date()函数第1个参数表示格式化日期时间的样式
date()函数第2个参数表示待格式化的时间戳,省略时表示格式化当前时间戳。

Y 4位数字表示的完整年份,如1998、2015
m 数字表示的月份,有前导零,返回值01~12
d 月份中的第几天,有前导零,返回值01~31
H 小时,24小时格式,有前导零,返回值00~23
i 有前导零的分钟数,返回值00~59
s 有前导零的秒数,返回值00~59

php手册

PHP手册

十五、包含语句.

可以从另一个文件中将代码包含进来。使用包含语句不仅可以提高代码的重用性,还可以提高代码的维护和更新的效率。

PHP提供的包含语句

  • Include
  • Require
  • Include_once
  • require_once

Include语句(其他语句语法类似).

//第一种写法
include '文件路径';

//第二种写法
include('文件路径');

require语句与include语句的异同点:

  • 相同点:
    • require语句与include语句的功能类似,都可以用于包含文件。
  • 不同点:
    • 在包含文件时,如果没有找到文件,include语句会发生警告信息,程序继续运行
    • 在包含文件时,如果没有找到文件, require语句会发生致命错误,程序停止运行

带_once与不带_once语句的区别:

  • include_once、require_once语句,与include、require的作用几乎相同
  • 带_once的语句会先检查要包含的文件是否已经被包含过,避免了同一文件被重复的包含

Web交互.

1.get传参.

​ 在使用PHP函数时,一个函数可以接收多个参数。同理,PHP脚本文件也可以接收参数,其传递参数的方式是通过URL地址实现的。

http://www.bxg.com/test.php?name=Tom&age=12

文件名test.php后面从“?”开始的部分就是传递的GET参数
name和age是参数的名称
Tom和12是相应的参数值
多个参数之间使用“&”进行分隔。

2.Web表单.

​ 在实现浏览器向服务器发送数据时,除了用URL传递参数,还可以使用Web表单来实现。

​ 在表单中的提交方式中,“method=post”表示表单以POST方式提交,当省略“method”属性时默认以GET方式提交。
​ 相比GET方式,POST方式提交的数据是不可见的,在交互时相对安全,因此通常情况下使用POST方式提交表单数据。

表单:略(HTML5的内容)

3.获取外部数据.

​ 当PHP收到来自浏览器的外部数据后,会自动保存到超全局变量数组中。超全局变量是PHP中预定义好的变量,可以在PHP脚本的任何位置使用。
​ 常见的超全局变量有“$_GET、$_POST”等,通过GET方式提交的数据会保存到$_GET数组中,通过POST方式提交的数据会保存到$_POST数组中。
$_GET和$_POST的使用完全相同,接下来以$_POST为例进行详细讲解。

查看来自表单提交的数据.

$_POST实际上就是一个数组,其用法和普通数组没有区别。


//输出所有的元素
var_dump($_POST); 
//输出指定元素
echo $_POST['name'];

判断表单数据是否存在.

​ 用户通过POST方式进行表单提交时,若没有添加任何数据,则$_POST中就没有相应的数组元素。因此在取出数组元素之前,应该先判断数组中是否有这个元素

//获取$_POST中的name元素,没有时默认为空字符串
$name = isset($_POST['name']) ? $_POST['name'] : '';

isset()用于判断变量或数组元素是否存在
存在时返回true
不存在时返回false

判断数据是否为空.

empty()

if(empty($_POST['name'])){
 //没有收到name,或name的值为空
}

用empty()函数判断数组元素是否为空,为空时返回true,元素不存在时也返回true。

过滤外部数据.

​ 在开发 PHP 程序时,为了便于调试,会将用户输入的内容直接显示到网页中。但是当网站上线时,如果不对用户的输入进行任何过滤,会带来安全风险。

<div>
用户名: <div><?php echo $_POST['username']; ?></div>
来访时间: <div>2015-03-18</div>
</div>

上述代码将一个来自 POST 方式提交的 username 字段直接输出到网页中。
如果用户输入“</div>”,那么网页结构会遭到破坏。
如果用户输入<script>标记和 JavaScript 代码,那么这些代码也会被浏览器执行,从而威胁到网站的安全。
  • nl2br()函数

    nl2br()函数可以将字符串中的“\n”转换成HTML换行符。

    echo nl2br("12\n34", false); //输出结果:12<br>34
    
        nl2br()函数的第二个参数用于设置使用XHTML兼容换行符,默认值为true。
       当第二个参数设置为false时,会将字符串中的“\n”转换成<br>,否则转换为<br/>
  • trim()函数

    trim()函数可以去除字符串左右两端的空白字符,包括空格、换行和制表符等。

  • intval()函数

    intval()函数可以将字符串转换为整型。

    echo intval('123abc');     //输出结果:123
    echo intval(' 123abc');    //输出结果:123
    echo intval('abc123');     //输出结果:0
  • strip_tags()函数

    strip_tags()函数可以去除字符串中的“< >”标签。

    echo strip_tags('<b>测试</b>');    //输出结果:“测试”
  • htmlspecialchars函数

    htmlspecialchars()函数可以将字符串中的 HTML 特殊字符转换为 HTML 实体字符,从而防止被浏览器解析。

    echo htmlspecialchars('<测试>');          //输出结果:“&lt;测试&gt;”
    echo htmlspecialchars('<b>测试</b>'); //输出结果:“&lt;b&gt;测试&lt;/b&gt;”

GET传参处理.

在通过URL地址传递参数时,特殊字符在URL中直接书写可能会出现问题。

例如,“&”符号已经被作为参数分隔符,如果参数值中也出现该符号,就会被误识别为分隔符。

因此,当通过PHP输出一段带有GET参数的URL地址时,最好使用urlencode()函数对GET参数进行编码

$name = 'A&B C';
$name = urlencode($name);  //URL编码
echo "http://www.bxg.com/test.php?name=$name";

http://www.bxg.com/test.php?name=A%26B+C

在通过$_GET接收参数时,获得的数据已经是URL解码后的结果,无需手动进行URL解码。

文章作者: liuminkai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuminkai !
评论
 上一篇
php入门笔记2 php入门笔记2
php操作数据库(mysql).一、PHP数据库扩展分类. MySQL 扩展 MySQLi 扩展 PDO扩展 1.MySQL扩展. MySQL 扩展是针对 MySQL 4.1.3 或更早版本设计的,是 PHP 与 MySQL数据库交互的早
2020-06-05
下一篇 
apache服务器的配置 apache服务器的配置
配置互联网. 在互联网中,搭建一个上线网站:需要域名和IP地址。 在开发阶段,搭建一个网站:只需要网站域名,使网站能够在本机与局域网内被访问就足够了。 1.配置 网站域名. 打开‘C:/windows/system32/drivers/e
2020-05-19
  目录