php的笔记(更新中)
php
前端 html\css\js
后端 php\python\java
数据库 mysql\nssql
- 将数据发给后台
- 后台加工处理
- 与数据库交互存取数据
- 后台程序拿到数据加工处理
- 返回给前端
php语法
php可以嵌套在html中
php字符串拼接
php里面.
是字符串拼接符号。
'background'.$a
单引号和双引号的区别
变量解析
不带引号可以直接解析变量
- 单引号:单引号字符串不会解析其中的变量,PHP 会将变量名原样输出。例如:
$name = "John";
$str1 = 'My name is $name';
echo $str1;
上述代码的输出结果为 My name is $name
,变量 $name
未被解析。
- 双引号:双引号字符串会解析其中的变量,将变量的值替换到字符串中。示例如下:
$name = "John";
$str2 = "My name is $name";
echo $str2;
此代码的输出结果为 My name is John
,变量 $name
被成功解析为其对应的值。
转义字符处理
- 单引号:单引号字符串中仅对单引号(
'
)和反斜杠(\
)进行转义,其他转义字符(如\n
表示换行、\t
表示制表符等)会被当作普通字符处理。例如:
$str3 = 'This is a single - quoted string with \n a new line';
echo $str3;
输出结果为 This is a single - quoted string with \n a new line
,\n
未被解析为换行符。若要输出单引号或反斜杠,需要进行转义,如 'It\'s a nice day'
会输出 It's a nice day
。
- 双引号:双引号字符串会对多种转义字符进行解析,将其转换为对应的特殊字符。例如:
$str4 = "This is a double - quoted string with \n a new line";
echo $str4;
输出结果中会实现换行效果,即:
This is a double - quoted string with
a new line
性能差异
- 单引号:不需要进行变量解析和复杂的转义字符处理,PHP 解析单引号字符串的速度相对较快
- 双引号:需要进行变量解析和转义字符处理,性能上略逊于单引号字符串。
前后端小交互
前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>首页</title>
</head>
<body>
<form action="login.php" method="get">
用户名:<input type="text" name="usernaem">
密码:<input type="text" naem="password">
<input type="submit" value="提交">
</form>
</body>
</html>
后端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网站后台</title>
<style>
div{
text-align: right;
}
</style>
</head>
<body>
<div>
<?php
$name=$_GET["username"];
echo "欢迎".$name."回来";
?>
</div>
</body>
</html>
前后端通过form表单交互
get post请求
一个网站90%是get请求,如鼠标点击。提交数据是post请求
php数据类型
- 布尔类型 0 1|true false
- 整形
- 浮点型
- 字符串
- 数组 array
- 对象 object
- 资源类型 resource
- NULL 空
字符串大小写转换
在 PHP 中,你可以使用内置函数来转换字符串的大小写。这里有几种常用的方法:
- strtolower()
这个函数将字符串中的所有字符转换为小写。
$string = "Hello, World!";
$lowercase = strtolower($string);
echo $lowercase; // 输出: hello, world!
- strtoupper()
这个函数将字符串中的所有字符转换为大写。
$string = "Hello, World!";
$uppercase = strtoupper($string);
echo $uppercase; // 输出: HELLO, WORLD!
- ucfirst()
这个函数将字符串中首字母转换为大写。
$string = "hello, world!";
$capitalized = ucfirst($string);
echo $capitalized; // 输出: Hello, world!
- ucwords()
这个函数将字符串中每个单词的首字母转换为大写。
$string = "hello, world!";
$capitalizedWords = ucwords($string);
echo $capitalizedWords; // 输出: Hello, World!
- lcfirst()
这个函数将字符串中首字母转换为小写。注意,这个函数在 PHP 5.3.0 及以上版本中可用。
$string = "Hello, World!";
$lowercaseFirst = lcfirst($string);
echo $lowercaseFirst; // 输出: hEllo, World!
- mb_strtolower() 和 mb_strtoupper()(对于多字节字符)
如果你正在处理多字节字符(比如 UTF-8 编码的字符),使用 mb_strtolower() 和 mb_strtoupper() 是更好的选择,因为它们可以正确处理多字节字符。
$string = "你好,世界!";
$lowercase = mb_strtolower($string);
echo $lowercase; // 输出: 你好,世界! (取决于具体的字符和编码)
使用这些函数,你可以根据需要转换字符串的大小写。选择合适的方法取决于你的具体需求,比如是否需要转换整个字符串的大小写,或者仅仅是首字母的大小写。
浮点数保留两位小数
方法一:使用内置函数number_format()
$num = 12.3456;
$result = number_format($num, 2);
echo $result; // 输出:12.35
方法二:使用sprintf()函数
$num = 12.3456;
$result = sprintf("%.2f", $num);
echo $result; // 输出:12.35
方法三:使用round()函数结合数学运算
$num = 12.3456;
$result = round($num, 2);
echo $result; // 输出:12.35
方法四:使用字符串处理函数
$num = 12.3456;
$result = substr($num, 0, strpos($num, '.') + 3);
echo $result; // 输出:12.34
方法五:使用运算符
$num = 12.3456;
$result = (float)number_format($num, 2);
echo $result; // 输出:12.35
字符串切割
在PHP中,有多种方法可以实现字符串的切割:
- 使用substr()函数:
$str = "Hello World";
$substring = substr($str, 0, 5); // 切割字符串从索引0开始,长度为5
echo $substring; // 输出 "Hello"
- 使用mb_substr()函数(适用于多字节字符):
$str = "你好,世界";
$substring = mb_substr($str, 0, 2); // 切割字符串从索引0开始,长度为2个字符
echo $substring; // 输出 "你好"
- 使用explode()函数(根据分隔符切割字符串为数组):
$str = "apple,banana,orange";
$arr = explode(",", $str); // 使用逗号为分隔符切割字符串
echo $arr[0]; // 输出 "apple"
echo $arr[1]; // 输出 "banana"
echo $arr[2]; // 输出 "orange"
- 使用preg_split()函数(通过正则表达式切割字符串为数组):
$str = "apple1banana2orange3";
$arr = preg_split("/\d+/", $str); // 切割字符串根据数字进行分割
echo $arr[0]; // 输出 "apple"
echo $arr[1]; // 输出 "banana"
echo $arr[2]; // 输出 "orange"
判断数据类型
var_dump($a)
var_dump会输出变量的数据类型,和变量的值
字母+数字 占1字节
gbk 一个汉字占2字节
utf-8 一个汉字占3字节
unicode 一个汉字占4个字节
unicode===ascii码 + gbk + 日文 + 韩文 + xxx …
php中文乱码
在php开头加上
header("Content-Type: text/html; charset=utf-8");
php变量
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
local
global
static
parameter
local和global
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global 关键字。
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问
static作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
php常量
用define定义,常量最好全部大写
<?php
define("CONSTANT", "Hello world");
echo CONSTANT;
?>
不能用=定义,不能重复定义
EOF
定义一个字符串的方法。
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
- 以
<<<EOF
开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接
<?php
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
php运算符
算数运算符
+ - * / % -(取负) .(并置)
优先级:
乘除>.点>加减
自增自减
++ x
x ++
-- x
x --
比较运算符(注意)
符号 | 名称 | 描述 |
---|---|---|
== | 等于 | 等于返回true,不比较数据类型 |
=== | 绝对等于 | 相等且数据类型相等返回true,比较数据类型 |
!= | 不等于 | 不等于返回true |
<> | 不等于 | 不等于返回true |
还有
<,>,<=,>=
内存的结构
$a = 5;
$b = $a;
$a = 7;
echo $a;
echo $b;
输出:
7
5
修改的是变量的内存地址,不是更改内容
赋值运算符
=
+=
-=
*=
/=
%=
.= a=a.b 连接两个字符串
逻辑运算符
and
or
xor 异或 如果x和y有且仅有一个为true返回true
&& 短路
|| 短路
! 非,取反
三目运算符
? : ;
问号运算符
数组重点
数组类别
普通数组
$a = array('周','吴','郑');
echo $a[1];
关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
如何遍历关联数组
您可以使用 foreach 循环
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
关联数组通过键来进行访问数组元素
注意
$_GET和$_POST
通过URL参数传递个当前脚本的变量的数组
数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
数组长度
count 元素的数量
sizeof 数组大小
- 使用
count()
函数
count()
是最常用的获取数组长度的函数,它可以统计数组或对象中的元素个数。其语法格式为count($array, $mode)
,其中$array
是要统计的数组或对象,$mode
是可选参数,有两个值:
0
或COUNT_NORMAL
(默认值):不递归统计多维数组中的元素,只统计外层数组的元素个数。1
或COUNT_RECURSIVE
:递归统计多维数组中的所有元素个数。
示例代码
// 一维数组
$singleArray = [1, 2, 3, 4, 5];
$singleLength = count($singleArray);
echo "一维数组的长度: ". $singleLength. "<br>";
// 多维数组
$multiArray = [
[1, 2],
[3, 4],
[5, 6]
];
// 不递归统计
$multiLengthNormal = count($multiArray);
echo "多维数组不递归统计的长度: ". $multiLengthNormal. "<br>";
// 递归统计
$multiLengthRecursive = count($multiArray, COUNT_RECURSIVE);
echo "多维数组递归统计的长度: ". $multiLengthRecursive;
- 使用
sizeof()
函数
sizeof()
函数的功能和count()
函数基本相同,它是count()
函数的别名,用法也一样。
示例代码
$array = [10, 20, 30];
$size = sizeof($array);
echo "数组的长度: ". $size;
控制结构
if
if
elseif(/else if)
else
while
$i=1;
while($i < 10){
$i++;
echo $i;
}
do-while
for
for($i=1;$i<=10; $i++){
echo $i;
}
foreach
遍历数组
$cars=array("特等奖"=>"布加迪","一等奖"=>"捷豹");
foreach ($cars as $key => $value){
echo "<tr><td>$key</td><td>$value</td></tr>";
}
switch
switch($i){
case "apple" :
echo "i have an apple";
}
杂项
- rand()函数产生随机数
$a = rand(1,10);
- 用到中文
在php代码里开头加上
header("Content-Type: text/html; charset=utf-8");
判断字符串中是否包含某个字符:
1. 使用 strpos()
函数
strpos()
函数用于查找字符串中首次出现某个字符或子字符串的位置。如果找到,返回该位置的索引(从 0 开始);如果未找到,返回 false
。
$string = "Hello, World!";
$char = "W";
if (strpos($string, $char) !== false) {
echo "字符串中包含字符 '{$char}'。";
} else {
echo "字符串中不包含字符 '{$char}'。";
}
注意:strpos()
返回的索引可能是 0
,因此在判断时需要使用 !== false
,而不是 != false
。
2. 使用 strstr()
函数
strstr()
函数用于查找字符串中首次出现某个字符或子字符串的位置,并返回从该位置到字符串末尾的部分。如果未找到,返回 false
。
$string = "Hello, World!";
$char = "W";
if (strstr($string, $char)) {
echo "字符串中包含字符 '{$char}'。";
} else {
echo "字符串中不包含字符 '{$char}'。";
}
3. 使用 str_contains()
函数(PHP 8.0+)
str_contains()
是 PHP 8.0 引入的函数,专门用于判断字符串中是否包含某个子字符串。如果包含,返回 true
;否则返回 false
。
$string = "Hello, World!";
$char = "W";
if (str_contains($string, $char)) {
echo "字符串中包含字符 '{$char}'。";
} else {
echo "字符串中不包含字符 '{$char}'。";
}
4. 使用正则表达式 preg_match()
如果你需要更复杂的匹配(如正则表达式),可以使用 preg_match()
函数。
$string = "Hello, World!";
$char = "W";
if (preg_match("/$char/", $string)) {
echo "字符串中包含字符 '{$char}'。";
} else {
echo "字符串中不包含字符 '{$char}'。";
}
超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
php自定义函数
创建函数,定义函数,声明函数
<?php
function functionName()
{
// 要执行的代码
}
//调用函数
functionName();
?>
系统函数
数字常用函数
函数名 | 描述 | 例子 |
---|---|---|
abs() | 求绝对值 | abs(-4.2) |
cell() | 进一法取整 | cell(9.999);//10 |
floor() | 舍去法取整 | floor(9.999);//9 |
fmod() | 浮点数取余 | |
pow() | 返回数的n次方 | pow(-1,20);//1 |
round() | 浮点数四舍五入 | round(195583,2);//1.96 |
sqrt() | 求平方根 | sqrt(9);//3 |
max() | 求最大值 | max(1,3,5,7);//7 |
min() | 最小值 | min(1,2,3);//1 |
mt_rand() | 更好的随机数 | mt_rand(0,9); |
rand() | 随机数 | rand(0,9); |
pi() | 获取圆周率 | pi();//3.1415926535898 |
字符串常用函数
函数名 | 描述 | 例子 |
---|---|---|
trim() 重点 | 删除字符两端的空格或其他预定义字符 | KaTeX parse error: Undefined control sequence: \nhello at position 10: str = "\r\̲n̲h̲e̲l̲l̲o̲ ̲world\n\r";echo…str); |
rtrim() 重点 | 删除字符串右边的空格或其他预定义字符 | |
chop() | rtrim()别名 | |
ltrim() 重点 | 删除字符串左边的 | |
dirname() | 会路径中的目录部分(我们把它跪在了字符串函数里) | echo dirname(“c:/testweb/home.php”); |
str_pad() | 把字符串填充为指定的长度 | s t r = " h e l l o w o r l d " ; e c h o s t r p a d ( str = "hello world";echo str_pad( str="helloworld";echostrpad(str,20,“.”); |
str_repeat() | 重复用指定字符串 | echo str_repeat(“.”,13); |
str_split() | 把字符串分割到数组中 | print_r(str_split(“hello”)); |
explode() 重要 | 按特定符号切割 | explode(’ ',字符串); |
strrev() | 反转字符串 | |
。。。 |
时间日期函数
- date() 函数(字符串)
PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。
<?php
echo date("Y/m/d") . "<br>";
echo date("Y.m.d") . "<br>";
echo date("Y-m-d");
?>
- getdate()函数(数组)
可以获得当前时间,如果里面传入时间戳就获得时间戳的时间。
print_r(getdate());
数组函数
函数名 | 功能 |
---|---|
array_combine() | 生成一个数组,用一个数组的只作为简明,另一个数组值作为值 |
range() | 创建并返回一个包含指定范围的元素的数组 |
compact() | 创建一个由参数所带变量组成的数组 |
in_array() | 检查数组中是否含有某个值 |
array_key_exists() | 检查给定的键名或索引是否存在于数组中 |
array_keys() | 返回数组中所有的键,组成一个数组 |
array_values() | 返回数组中所有值,组成一个数组 |
unset() | 删除指定元素 |
sort() | 数组排序 |
文件操作
readfile():读取文件,并返回文件的长度
file_get_contents():读取文件,支持本地文件的和远程文件url,读取的结果是字符串
file_put_contents():保存文件
登录小案例
前端登录代码用login.html
后端代码:
<?php
//解决中文乱码
header("Content-Typer: text/html; charset=utf-8");
//接收前台传过来的账号和密码
$user = $_GET["username"];
$pass = $_GET["mima"];
//读取账号密码保存文件,要先在该目录下建好文档
/*user.txt内容
zhangsan:123456
lili:666
*/
$a = file_get_contents('user.txt');
//按照换行符切割字符串,得到数组
$b = explode("\r\n",$a);
$changdu = count($b) - 1;
$cunzai = 0;
for($i=0;$i<=$changdu;$i++){
$zhanghu = $b[$i];
$c = explode(":",$zhanghu);
if($c[0] == $user){
$cunzai = 1;
if($c[1]==$pass){
echo $c[0] . "登陆成功";
break;
}else{
echo $c[0] . "登陆失败";
}
}
}
if($cunzai == 0){
echo "用户不存在";
}
?>
爬虫小案例
//解决中文乱码
header("Content-Typer: text/html; charset=utf-8");
$a = file_get_contents('http://192.168.16.100/img/');
//正则规则
$guize1 = '@herf=\".*\">@';
preg_match_all($guize1, $a, $b);
$changdu = count($b[0]) - 1;
//print_r($b[0]);
for ($i = 0; $i <= $changdu; $i++){
$c = $b[0][i];
$guize2 = '/[^"]+/';
preg_match_all($guize2, $c, $d);
$pic_name = $d[0][1];
if ($pic_name != '../'){
$url = "http://192.168.16.100/img/" . $pic_name;
//获取文件
$e = file_get_contents($url);
//写入文件
file_put_contents($pic_name, $e);
echo $pic_name . "下载成功";
}
}
fopen
相关
一点点读取
fopen、fread、fwrite、fclose
操作读取文件。
resource fopen(string $文件名,string 模式)
string fread(resource $操作资源(也就是文件路径), int 读取长度)
bool fclose(resource $操作资源)
注意:resource、string、bool表示的是方法的返回值
fopen 的模式由下面几个,fopen的模式:带+号的先pass
模式 | 说明 |
---|---|
r | 只读方式打开,将文件指针庄子乡文件头。重点 |
r+ | 读写方式打开,将文件 |
w | 写入方式打开,将文件指针指向文件头并将文件大小截为零,如果文件不存在则尝试创建。重点 |
w+ | 读写方式打开,将文件指针指向文件头并将文件大小截为零,如果文件不存在则尝试创建 |
a | 写入方式打开,将文件指针指向文件末尾,如果文件不存在则尝试创建,称之为追加。重点 |
a+ | 读写方式打开,将文件指针指向文件末尾,如果文件不存在则尝试创建。 |
x | 创建并以写入方式打开,将文件指针指向文件头,如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息,如果文件不存在则尝试创建。重点 |
x+ | 创建并以读写方式打开,将文件指针指向文件头,如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息,如果文件不存在则尝试创建 |
注意:w会将旧文件覆盖掉,a会续写
实例
//解决中文乱码
header("Content-Typer: text/html; charset=utf-8");
//a是一个进程,数据类型是资源
//var_dump($a)
$a = fopen('user.txt', 'r');
$size = filesize('user.txt');
print_r($size);
//
//读取文件的及其长度
$b = fread($a,filesize('user.txt'));
echo $b;
//
fclose($a);
php文件和目录管理
创建临时文件
创建临时文件的好处:用完后即删除,不需要去维护这个文件的删除状态。
//创建一个临时文件
$shandle = tmpfile();
//向里面写入了数据
$numbytes = fwrite($shandle, '写入临时文件');
//关闭临时文件,文件即被删除
fclose($shandle);
echo '向临时文件中写入'.$numbytes . '个字节';
php移动拷贝和删除文件
重命名
rename( 新名 , 新名, 新名,旧名);
复制文件
copy(源文件,目标文件);
将指定目录的源文件,赋值一份到目标文件的位置
删除文件
删除文件时将指定路径的一个文件按删除,不过这个删除时直接删除,使用的时Windows电脑,你在回收站看不见这个文件,你只会发现,这个文件消失了,unlink(指定路径的文件)
$filename = 'test3.txt';
unlink($filename);
检测文件属性
检测文件是否存在
file_exists('xx.txt');
常见文件属性函数
file_exists ($指定文件名或文件路径)
文件是否存在
is_readable ($)
文件是否可读
is_writeable($)
文件是否可写
is_executable ($)
文件是否可执行
is_file($)
是否是文件
is_dir()
是否是目录
clearststcache(void)
清除文件的状态缓存
php目录处理函数
思想
- 读取某个路径的时候判断是否是文件
- 是文件夹的换,打开指定的文件夹,返回文件目录的资源变量
- 使用readdir读取一次目录中的文件,目录指针向后偏移一次
- 使用readdir读取到最后,没有可读文件返回false
- 关闭文件目录
|函数名|功能|
|opendir|打开文件夹,返回操作资源|
|readdir|读取文件夹资源|
|is_dir|判断是否是文件夹|
|closedir|关闭文件夹操作资源|
|filetype|显示是文件夹还是文件,文件显示file,文件夹显示dir|
输出文件
$a = opendir('.');
while($b = readdir($a)){
echo $b;
echo "<hr>";
}
去查
php文件权限查询
chmod修改文件的权限
//修改linux 系统/var/wwroot/某个文件权限为755
chmod("/var/wwwroot/index.html",755);
权限说明:
r-读
w-写
x-执行
d-表示文件夹
u-当前用户
g-当前用户所在组
o-其他用户
php文件路径函数
经常遇到处理文件路径的情况
- 文件后缀需要取出来
- 路径需要取出名字不取目录
- 只需取出路径名中的目录路径
- 或者把网址中的各个部分进行解析取得独立值
- 甚至是自己组成一个url出来
函数
- pathinfo 返回文件的各个组成部分
- basename 返回文件名
- dirname 文件目录部分
- parse_url 网址拆解成各部分
- http_build_query 生成url中的query字符串
- http_build_url 生成一个url
$path_parts = pathinfo('d:/www/index.inc.php');
echo '文件目录名:'.$path_parts['dirname']."<br />";
echo '文件全名:'.$path_parts['basename']."<br />";