PHP基础教程-吐血大推荐(9)

2019-09-01 21:08

根据特定的设置和个人的喜好,有很多种方法访问客户端变量,这里仅介绍常用的两种方法: 例:访问POST表单变量(简称POST变量) x.php

//①直接使用客户端变量(学习使用)

//PHP配置文件中 指令 register_globals = on 时可用。不过 //为提高服务器安全性和提升性能

//自 PHP 4.2.0 起默认为 register_globals = off。 // 在实际应用中,不提倡使用/依赖此种方法。 echo $username;

// ②通过超全局变量数组引用表单变量的方式(实际应用) //自 PHP 4.1.0 起可用

echo $_POST['username'];//若username是通过GET方法传递的,这里应将$_POST换成$_GET echo $_REQUEST['username']; ?>

通过GET方法传递:当表单采用GET方法,或username为查询字符串变量时。

关于第二种,首先要弄清楚变量的传递方法(POST/GET),然后通过相应的超全局变量数组($_POST/$_GET)来引用,为方便页内使用,可先转成简单变量的形式,如$username=$_POST['username'],然后再使用。

第一种方法不用管客户端传递数据的方法,按名访问即可,较为简单。因实验条件原因(实验室Win95下安装的PHP版本为4.0.4),同时考虑到方便学习,本课程采用第一种:直接使用客户端变量的方法。

5.PHP变量的作用域

按照PHP变量的定义方式,PHP变量的分类和相应的作用域分别为:

(1)客户端变量:主要是表单变量、查询字符串变量等,由客户端编程人员设计、定义、提交的变量。 作用域是一个PHP页。

(2)服务器端程序员变量:在PHP程序中程序员定义的变量,如例3-1中的$a。 作用域是一个PHP页。

(3)预定义变量:由PHP自己定义好的变量,变量名是固定的,存储在$_SERVER、$_ENV等部分超全局数组中。作用域是全局。

6.超全局变量数组

自 PHP 4.1.0 起,取得客户端变量的首选方法是通过引用超全局变量数组中的元素。超全局变量数组元素包含了来自 Web 服务器(如果可用),运行环境,和用户输入的数据(客户端变量)。 其中,

(1)存有客户端变量的数组:

$_POST:通过 HTTP POST 方法传递的变量组成的数组。 $_GET:通过 HTTP GET 方法传递的变量组成的数组。 $_COOKIE:通过 HTTP cookies 传递的变量组成的数组。

$_REQUEST:此数组包含 $_GET,$_POST 和 $_COOKIE 中的全部内容。

PHP讲义 第 41 页 共 91 页

$_FILES:通过 HTTP POST 方法传递的已上传文件项目组成的数组。 $_SESSION:包含当前脚本中 session 变量的数组。

(2)$GLOBALS:由所有已定义的全局变量组成的数组。变量名就是该数组的索引。

(3)$_SERVER:存储来自 Web 服务器信息的数组,是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组由Web 服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些新的信息。

常用的$_SERVER数组元素: PHP_SELF

当前正在执行脚本的文件名,与document root 相关。

例如,在URL 地址为 http://www.sunshoulong.cn/abc/xyz.php 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到/abc/xyz.php这个结果。__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名。

使用格式:(注意大小写敏感)

echo $PHP_SELF;//当php.ini中register_globals=On时

echo $_SERVER[―PHP_SELF‖]; //当php.ini中register_globals=Off时

以下使用形式同上,仅解释意义:

SERVER_NAME:服务器名字

SERVER_SOFTWARE:Web服务器软件名称 DOCUMENT_ROOT:发布文档主目录 HTTP_HOST:服务器主机名

SERVER_PORT:服务器Web服务端口 以上五个对应Apache配置文件中的相应参数

HTTP_USER_AGENT:客户端浏览器信息 REMOTE_ADDR:客户机地址 REMOTE_HOST:客户机主机名

以上三个存有服务器获取的正在访问客户机的信息

相关PHP函数:

gethostbyaddr -- 根据客户IP得到客户主机名 语法格式:

string gethostbyaddr ( string ip_address )

例:

$hostname=gethostbyaddr($_SERVER['REMOTE_ADDR']); echo ―你的计算机主机名是:‖.$hostname; ?>

gethostbyname -- 根据给定的主机名(域名)得到IP 语法格式:

string gethostbyname ( string hostname ) 例:

$ip = gethostbyname('ilong');

PHP讲义 第 42 页 共 91 页

echo ―主机名为ilong的计算机的IP地址是:‖.$ip; //211.64.40.187 echo ―
‖;

$ip = gethostbyname('www.dzu.edu.cn');

echo ―域名为www.dzu.edu.cn的计算机的IP地址是:‖.$ip; // 211.64.32.1 ?>

7.数据类型

仅选择介绍如下几种: ? 原始类型

? 4种标量类型: 布尔型(boolean) 整型(integer) 浮点型(float)(浮点数,也作―double‖) 字符串(string) ? 1种复合类型: 数组(array)

? 2种特殊类型: 资源(resource) NULL

? 2种伪类型:

mixed mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型 number number 说明一个参数可以是 integer 或者 float。

(1)布尔型(boolean)

这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。 语法

指定布尔值:使用关键字 TRUE 或 FALSE。两个都是大小写不敏感的。

$a = TRUE; // 指定 TRUE 到 $a ?>

布尔值的检测:

// 这样检测无必要 if ($a == TRUE) {

echo \}

//只需简单地这样检测 if ($a) {

echo \}

真值和假值的情况: FALSE

布尔值 FALSE 整型值 0(零) 浮点型值 0.0(零) 空白字符串和字符串 \

PHP讲义 第 43 页 共 91 页

没有成员变量的数组 没有单元的对象

特殊类型NULL(包括尚未设定的变量) TRUE

所有其它值都被认为是 TRUE(包括任何资源) 包括-1 和其它非零值(不论正负) (2)整型(integer)

整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。 如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。

$a = 1234; // 十进制数 $a = -123; // 一个负数

$a = 0123; // 八进制数(等于十进制的 83) $a = 0x1A; // 十六进制数(等于十进制的 26) ?>

(3)浮点型(float)

浮点数(也叫―floats‖,―doubles‖或―real numbers‖)可以用以下任何语法定义:

$a = 1.234; $a = 1.2e3; $a = 7E-10; ?>

(4)字符串型(string) string 是一系列字符。

常用两种方法定义:单引号、双引号。 单引号

指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。

要表示一个单引号,需要用反斜线(\\)转义;要表示一个反斜线,需要用两个反斜线表示。

// 输出结果:Tom said: \echo 'Tom said: \

//输出结果:Will you want to delete C:\\*.*? echo 'You deleted C:\\\\*.*?';

//输出结果:将不会把 \\n 转义为换行 echo '将不会把 \\n 转义为换行';

$a=‖abc‖;

//输出结果: 变量名$a也不转义为变量$a的值abc echo '变量名$a也不转义为变量$a的值abc'; ?>

双引号

如果用双引号(\)括起字符串,PHP 支持更多特殊字符的转义序列:

转义字符 序列 含义 \\n 换行 PHP讲义 第 44 页 共 91 页

\\r 回车 \\t 制表符 \\\\ 反斜线 \\$ 美元符号 \\\双引号 \\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符 \\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符 注意:试图转义任何其它字符,反斜线本身也会被显示出来。 双引号字符串最重要的一点是其中的变量名会被变量值替代。

$a=‖abc‖;

//输出结果: 变量名abc转义为变量abc的值abc echo '变量名$a转义为变量$a的值abc'; ?>

变量解析

当用双引号指定字符串时,其中的变量会被解析。

如果遇到$,PHP会尽可能多地取得后面的字符以组成一个合法的变量名。若要显示地指明变量名,用花括号把变量名括起来。 应明确双引号中变量名,以免发生变量解析错误。

$beer = 'TsingTao';

echo \:中国啤酒名牌\出错,这里用的是中文冒号

echo \: 中国啤酒名牌\正常工作,这里用的是中文冒号,但在冒号前加了个空格 echo \中国啤酒名牌\正常工作,英文冒号: 是无效变量标识符 echo \正常工作, 单引号‘是无效变量标识符 echo \ //出错, 's' 是有效的变量标识符

echo \正常工作,使用花括号强制指明变量名 echo \正常工作,使用花括号强制指明变量名 ?>

(5)数组型(array) 定义数组: array()

可以用 array() 语言结构来新建一个array。它接受一定数量用逗号分隔的 key => value 参数/值对。 array(key_1=>value_1,key_2=>value_2,……) // key_n可以是 integer 或者 string // value_n可以是任何值

例如:

$a = array(\

echo $arr[\echo $arr[12]; // 1 ?>

键名:key,即数组元素的下标 键值:value,即数组元素的值

如果键名是一个 integer 的标准表达方法,则被解释为整数(例如 \将被解释为 8,而 \将被解释为 \)。key 中的浮点数被取整为 integer。PHP 中没有不同的数字下标和和关联下标数组,数组的类型只有一种,它可以同时包含整型和字符串型的下标。

PHP讲义 第 45 页 共 91 页


PHP基础教程-吐血大推荐(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:地下管线及地上地下设施的保护加固措施

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: