PHP学习记录5

PHP $_GET 变量

我们前面在学习的时候已经知道 $_GET 变量用于收集来自 method="get" 的表单中的值。

$_GET 变量

预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。

从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="php_get.php" method="get">
     名字: <input type="text" name="name"><br>
     性别:<input type="radio" name="sex" value="男" checked><input type="radio" name="sex" value="女"><br>
     年龄: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>
<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_GET['name'] ."<br/>";
 echo "你的性别是:"  .$_GET['sex']."<br/>";
 echo "你的年龄是:".$_GET['age'];
 ?>

何时使用 method="get"?

在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。

注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!

然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

 

 

$_POST 变量

 

预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。

 

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

 

注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

GET 与 POST 的区别:

  1. get是从服务器上获取数据,post是向服务器传送数据。

  2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其      内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

  3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

  4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

  5.  get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

 

PHP $_REQUEST 变量

  预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。

 $_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。

 你将上面的php 文件修改一下看看

 <?php

 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_REQUEST['name'] ."<br/>";
 echo "你的性别是:"  .$_REQUEST['sex']."<br/>";
 echo "你的年龄是:".$_REQUEST['age'];
 ?>

你会发现不管是$_POST还是$_GET提交的,都能用 $_REQUEST接收

 

 

PHP多维数组

PHP多维数组指的是包含一个或多个以上的数组

PHP能理解为两,三,四或五级甚至更多级的多维数组,不过,超过三级深的数组大多数人都于管理

 注释 :数组的维度指示需要选择元素的索引数

php二维数组

二维数组就是数组的数组,同理三维数组就是数组的数组的数组

注:二维数组需要两个索引来选择元素

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(
    array("小明","90","80","77"),
    array("小龙","88","75","89"),
    array("小花","99","95","94"),
);
echo $arr[0][0]."---语文:".$arr[0][1].":数学:".$arr[0][2].":英语:".$arr[0][3]."<br>";
echo $arr[1][0]."---语文:".$arr[1][1].":数学:".$arr[1][2].":英语:".$arr[1][3]."<br>";
echo $arr[2][0]."---语文:".$arr[2][1].":数学:".$arr[2][2].":英语:".$arr[2][3]."<br>";
?>

 

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(
    array("小明","90","80","77"),
    array("小龙","88","75","89"),
    array("小花","99","95","94"),
);
for($x=0;$x<3;$x++){
    echo "<p>行数$x</p>";
    echo"<ul>";
    for($row=0;$row<3;$row++){
        echo "<li>".$arr[$x][$row]."</li>";
    }
    echo"</ul>";
}
?>

 

 

 

PHP 三维数组

二维数组需要两个索引来选择元素

实例

<?php
$name=array(
    array(
        array('tom','andy','jack'),
       array('row','laya','lis')
    ),
);
print_r($name[0][1][1]);
?>

程序运行结果:

laya

 

 

PHP 日期和时间

PHP date() 函数用于对日期或时间进行格式化

 时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间

格式化日期:date()函数将返回参数timestamp按照指定格式而产生的字符串。

语法

date(format, timestamp)

       参数      描述
    format 必需,规定时间戳的格式。

    timestamp

可选,规定时间戳。默认是当前时间和日期

☆ 时间戳是一种字符序列,它表示具体事件发生的时间和日期

 

PHP Date() - 格式化日期

 date() 函数的第一个必需参数 format 规定了如何格式化日期/时间。

 这里列出了一些可用的字符:

 d - 代表月中的天 (01 - 31)

  • m - 代表月 (01 - 12)
  • Y - 代表年 (四位数)

可以在字母之间插入其他字符,比如 "/"、"." 或者 "-",这样就可以增加附加格式了:

 <?php

echo date("Y/m/d") . "<br>";
echo date("Y.m.d") . "<br>";
echo date("Y-m-d");
?>

 上面代码的输出如下所示:

2016/10/21
2016.10.21
2016-10-21

 

下面是常用于时间的字符:

·   h - 带有首位零的 12 小时小时格式

·   i - 带有首位零的分钟

·   s - 带有首位零的秒(00 -59)

·   a - 小写的午前和午后(am 或 pm)


实例

 下面的例子以指定的格式输出当前时间:

<?php
echo date ("H:i:sa");
?>

程序运行结果:

15:53:06pm

☆ PHP date()函数会返回服务器当前的时间/日期

获得时区

如果从代码返回的不是正确的时间,有可能是因为您的服务器位于其他国家或者被设置为不同时区。

因此,如果您需要基于具体位置的准确时间,您可以设置要用的时区。

下面的例子把时区设置为 "Asia/Shanghai",然后以指定格式输出当前时间:

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
date_default_timezone_set("Asia/Shanghai");
echo "当前时间是 " . date("h:i:sa");

?>

通过 PHP mktime() 创建日期

date() 函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间(正如上例中那样)。

mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。

语法

mktime(hour,minute,second,month,day,year)

下面的例子将使用mktime()函数中一系列的参数来创建日期和时间

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$d=mktime(9, 12, 31, 6, 10, 2016);
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>

程序运行结果:

创建日期是 2016-06-10 09:12:31am


通过 PHP strtotime() 用字符串来创建日期

PHP strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。

语法

strtotime(time,now)

 下面的例子通过 strtotime() 函数创建日期和时间:

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$d=strtotime("10:38pm April 15 2016");
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>

程序运行结果:

创建日期是 2016-04-15 10:38:00pm


PHP 在将字符串转换为日期这方面非常聪明,所以您能够使用各种值:

实例

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

程序运行结果:

2016-10-10 12:00:00am
2016-10-15 12:00:00am
2017-01-09 04:01:09pm

注:strtotime() 并不完美,所以请记得检查放入其中的字符串。


实例

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+5 weeks",$startdate);
while ($startdate < $enddate) {
    echo date("M d", $startdate),"<br>";
    $startdate = strtotime("+1 week", $startdate);
}
?>

程序运行结果:

Oct 15
Oct 22
Oct 29
Nov 05
Nov 12

 


实例

用strtotime()函数获取英文格式日期时间字符串的时间戳

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
echo strtotime("now"),"<br>";           //当前时间的时间戳
echo "输出时间:".date("Y-m-d H:i:s",strtotime("now")),"<br>";  //输出当前时间
echo strtotime("24 May 2016"),"<br>";                     //输出指点时间的时间戳
echo "输出时间:".date("Y-m-d H:i:s",strtotime("24 May 2016")),"<br>";     //输入指定的日期
?>

程序运行结果:

1476000300
输出时间:2016-10-09 16:05:00
1464019200
输出时间:2016-05-24 00:00:00


实例

 实现倒计时的功能

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$time=strtotime(date("Y-m-d H:i:s"));     //当前的系统时间
$time1=strtotime("2017-10-1  12:00:00");  //国庆节的放假时间
$time2=strtotime("2017-1-1");             //元旦的放假时间
$sub=ceil(($time1-$time)/3600);           //(60秒*60分)/小时
$sub1=ceil(($time2-$time1)/86400);        //(60秒*60分*24小时)/天
echo "离国庆放假时间还有 <strong>$sub</strong> 小时";
echo "<p>";
echo"离元旦放假时间还有 <strong>$sub1</strong> 天";
?>

 

PHP包含文件

在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。


include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。

include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 

向执行流(从一条语句前进到下一条语句,直至运行到程序的结尾处)引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。


包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。

语法

 include "filename";

require "filename";

 

实例

 假设有一个名为header.php 的文件 ,如下

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$name="PHP中文网";
$php="PHP";
?>

 使用 include 包含header.php 文件

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文网</title>
 </head>
 <body>
 <?php
   include "header.php";
   echo "欢迎来到"."$name"."学习"."$php";
  ?>
  </body>
 </html>

 

实例

 

有一个名为 "menu.php" 的标准菜单文件:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo '<a href="/index.asp">首页</a> -
 <a href="/html/index.asp">HTML 教程</a> -
 <a href="/css/index.asp">CSS 教程</a> -
 <a href="/js/index.asp">JavaScript 教程</a> -
 <a href="/php/index.asp">PHP 教程</a>';
 ?>

 

使用 "require" 包含 "menu.php" 文件

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文网</title>
 </head>
 <body>
 <h1>欢迎来到PHP中文网</h1>
  <?php
 
   require "header.php";
 
  ?>
 
 </body>
 </html>

程序运行结果:

欢迎来到PHP中文网

首页 - HTML 教程 - CSS 教程 - JavaScript 教程 - PHP 教程

  

include  VS  require

include 与 require 有一个巨大的差异:如果用 include 语句引用某个文件并且 PHP 无法找到这个文件,脚本会继续执行。

 如果我们使用 require 语句完成相同的案例,echo 语句不会继续执行,因为在 require 语句返回严重错误之后脚本就会终止执行

 

 

PHP文件处理

 

PHP 拥有的多种函数可供创建、读取、上传以及编辑文件。

 

注意:请谨慎操作文件!

 

当您操作文件时必须非常小心。如果您操作失误,可能会造成非常严重的破坏。

PHP readfile()函数

readfile($文件名) 

功能:传入一个文件路径,输出一个文件


例如 有个名为file.txt 的文件,内容如下

  Welcome in the PHP Chinese learning PHP

 用readfile()函数读取此文件并写到输出流的 PHP 代码如下(如读取成功则 readfile() 函数返回字节数):

 字节数:英文占一个字节  gbk编码中文占2个  utf-8中文占3个  空格和符号占1个

<?php
echo readfile("D:WWW/item/file.txt");
?>

程序运行结果:

Welcome in the PHP Chinese learning PHP39


file_get_contents打开文件

 上面的是单纯打文件就直接输出了,有没有打开文件后,能够赋值给一个变量的操作方式呢。

PHP当然会提供这种方式。这个方式就是PHP打开文件并返回内容的方式之一,我们来看看函数:


file_get_contents ( string filename)

 功能:传入一个文件或文件路径,打开这个文件返回文件的内容。文件的内容是一个字符串。

<?php
header("Content-type:text/html;charset=utf-8");
$data = "我是一个兵,来自老百姓";

$numbytes = file_put_contents('binggege.txt', $data);

if($numbytes){

 echo '写入成功,我们读取看看结果试试:';

 echo file_get_contents('binggege.txt');

}else{
 echo '写入失败或者没有权限,注意检查';
}

?>

fopen、fread、fclose操作读取文件

 fopen ($文件名, 模式)

fread ($操作资源, 读取长度)

fclose ($操作资源 )

通过上面的函数我们来讲解资源类型的通常操作方式:

 1.  打开资源

2.  使用相关函数进行操作

3.  关闭资源

fopen函数 fopen函数的功能是打开文件,参数主要有两个:

1.  文件打开的路径

2.  打开文件的模式
     资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

 fread函数 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。

fclose函数 fclose函数的功能是关闭资源。资源有打开就有关闭。

 

文件可能通过下列模式来打开:

 

模式描述
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

 

注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。

检测文件末尾(EOF)

feof() 函数检测是否已到达文件末尾(EOF)。

在循环遍历未知长度的数据时,feof() 函数很有用。

注释:在 w 、a 和 x 模式下,您无法读取打开的文件!

if (feof($file)) echo "文件结尾";

 


逐行读取文件

fgets() 函数用于从文件中逐行读取文件。

注释:在调用该函数之后,文件指针会移动到下一行。

实例

下面的实例逐行读取文件,直到文件末尾为止:

<?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))
{
    echo fgets($file). "<br>";
}
fclose($file);
?>

 


逐字符读取文件

fgetc() 函数用于从文件中逐字符地读取文件。

注释:在调用该函数之后,文件指针会移动到下一个字符。

实例

下面的实例逐字符地读取文件,直到文件末尾为止:

<?php
$file=fopen("welcome.txt","r") or exit("无法打开文件!");
while (!feof($file))
{
    echo fgetc($file);
}
fclose($file);
?>

 

移动,拷贝,删除文件

重命名文件

rename($旧名,$新名);

这个函数返回一个bool值,将旧的名字改为新的名字。

实例

<?php
$fileName1="text.txt";
$fileName2="text--1.txt";
rename($fileName1,$fileName2);
?>

上面的例子就是将一个text.txt的文件 改名为text--1.txt 的例子,你不妨可以试下


复制文件

 copy(源文件,目标文件)

功能:将指定路径的源文件,复制一份到目标文件的位置。

删除文件

 unlink (指定路径的文件)

文件常用的函数

 filesize 检测文件的大小

 

其他操作文件的函数,读取文件

 

  函数名   功能
  file 把整个文件读入一个数组中
  fgets 从文件指针中读取一行,读到最后返回false
  fgetc 从文件指针中读取一个字符,读到最后返回false
  ftruncate 将文件截断到给定的长度

 

 

 


 

我们通过一个实例来把上面几个函数都用到。

我们在text.txt文件中写入一批文件:

abcdeefghijklk
opqrst
uvwxyz
12345678

fgetc每次读取一个

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgetc($fp) ."<br>";
//我要全部读取可以,读取一次将结果赋值一次给$string
while($string = fgetc($fp)){
    echo $string;
}
?>

程序运行结果:

 a
bcdeefghijklk opqrst uvwxyz 12345678

fgets每次打开一行:

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp);
?>

程序运行结果:

abcdeefghijklk
opqrst
uvwxyz
12345678


文件截取函数

<?php
//打开我们上面的text.txt文件
$file = fopen("text.txt", "a+");
//你可以数数20个字有多长,看看是不是达到效果了
echo ftruncate($file,10);
fclose($file);
?>

 

运行一下程序,可以打开text.txt 文件,看一下是不是有20的字节


文件的时间函数

 

    函数    功能说明
    filectime   文件创建时间
    filemtime   文件修改时间
    fileatime   文件上次访问时间

实例

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'text.txt';

if (file_exists($filename)) {
    echo "$filename"."文件的上次访问时间是: " . date("Y-m-d H:i:s", fileatime($filename))."<br>";

    echo "$filename"."文件的创建时间是: " . date("Y-m-d H:i:s", filectime($filename))."<br>";

    echo "$filename"."文件的修改时间是: " . date("Y-m-d H:i:s", filemtime($filename));
}

?>

程序运行结果:

text.txt文件的上次访问时间是: 2016-09-13 17:44:40
text.txt文件的创建时间是: 2016-09-13 17:32:16
text.txt文件的修改时间是: 2016-09-13 17:44:55


目录处理函数

 

之前我们处理的全都是文件,那目录和文件夹怎么处理呢?

 

我们就来学习目录或者称为文件夹的处理相关函数。

 

处理文件夹的基本思想如下:

 

1.    读取某个路径的时候判断是否是文件夹

 

2.    是文件夹的话,打开指定文件夹,返回文件目录的资源变量

 

3.    使用readdir读取一次目录中的文件,目录指针向后偏移一次

 

4.    使用readdir读取到最后,没有可读的文件返回false

 

5.    关闭文件目录

 

我们来学习一下比较常用函数:

 

 

 

      函数名        功能
  opendir 打开文件夹,返回操作资源
  readdir 读取文件夹资源
  is_dir 判断是否是文件夹
  closedir 关闭文件夹操作资源

 

  filetype 显示是文件夹还是文件,文件显示file,文件夹显示dir

 

 

 


 

实例

 

<?php
//设置打开的目录是D盘
$dir = "D:/";
//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        //读取一次向后移动一次文件夹指针
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        //读取到最后返回false
        //关闭文件夹资源
        closedir($dh);
    }
}
?>

 

可以运行一下程序,看看是不是你电脑D盘的目录

 


 

判断文件的类型

 

<?php
//设置打开的目录是D盘
$dir = "D:/";
//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        //读取到最后返回false,停止循环
        while (($file = readdir($dh)) !== false) {
            echo "文件名为: $file : 文件的类型是: " . filetype($dir . $file) . "<br />";
        }
        closedir($dh);
    }
}
?>

 


 

文件路径函数

 

我们经常会遇到处理文件路径的情况。

 

例如:

 

1.    文件后缀需要取出来

 

2.    路径需要取出名字不取目录

 

3.    只需要取出路径名中的目录路径

 

4.    或者把网址中的各个部份进行解析取得独立值

 

5.    甚至是自己组成一个url出来

 

很多地方都需要用路径处理类的函数。

 

我们把常用的路径处理函数为大家做了标注,大家对着这个路径处理函数进行处理即可:

 

     函数名       功能
 pathinfo 返回文件的各个组成部份
 basename 返回文件名
    dirname 文件目录部份
    parse_url  网址拆解成各部份

 

   http_build_query 生成url 中的query字符串
   http_build_url 生成一个url

 


 

pathinfo

 

 pathinfo ( string $路径)
功能:传入文件路径返回文件的各个组成部份

 

实例

 

<?php
header("Content-type:text/html;charset=utf-8");
$path_parts = pathinfo('D:/www/a.html');
echo '文件目录名:'.$path_parts['dirname']."<br />";
echo '文件全名:'.$path_parts['basename']."<br />";
echo '文件扩展名:'.$path_parts['extension']."<br />";
echo '不包含扩展的文件名:'.$path_parts['filename']."<br />";
?>

 

程序运行结果:

 

文件目录名:D:/www
文件全名:a.html
文件扩展名:html
不包含扩展的文件名:a

 


 

basename

 

basename ( string $路径[, string $suffix ])
功能:传入路径返回文件名
第一个参数传入路径。
第二个参数,指定我文件名到了指定字符停止。

 

实例

 

<?php
echo "1: ".basename("d:/www/a.html", ".d")."<br>";
echo "2: ".basename("d:/www/include")."<br>";
echo "3: ".basename("d:/www/text.txt")."<br>";
?>

 

程序运行结果:

 

 1: a.html
 2: include
 3: text.txt

 


 

dirname

 

dirname(string $路径) 
功能:返回文件路径的文件目录部份

 

实例

 

<?php
$a=dirname(__FILE__);
echo$a;
?>

 

 

 

运行一下你的程序

 


 

parse_url

 

 parse_url ( string $路径 )
功能:将网址拆解成各个部份

 

实例

 

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
var_dump(parse_url($url));
?>

 

程序运行结果:

 

 array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}

 


 

http_build_query

 

 

 

http_build_query ( mixed $需要处理的数据)
功能:生成url 中的query字符串

 

实例

 

<?php
//定义一个关联数组
$data = [
    'username'=>'liwenkai',
    'area'=>'hubei',
    'pwd'=>'123'
];
//生成query内容
echo http_build_query($data);
?>

 

程序运行结果:

 

username=liwenkai&area=hubei&pwd=123

 

 

如果打开一个文件,文件名为中文,如果系统编程和当前文档编码不一致,会导致文件找不到无法打开,解决方法是用 iconv 函数编码转换成一致,如下:

$fpath=iconv('UTF-8','GB2312',"题库.csv");
$file=fopen($fpath,"r") or exit("无法打开文件!");
//此处省略相关操作
fclose($file);

用相对路径打不开子目录中的文件时,可用绝对路径打开,如下:

$file=fopen(dirname(__FILE__).'\\files\\tk.csv',"r") or exit("无法打开文件!");   
//此处省略相关操作
fclose($file);

 


 

 

posted @ 2021-10-18 14:05  网安小白CE  阅读(25)  评论(0编辑  收藏  举报
Live2D