P1-PHP:WEB端开发(环境搭建)
PHP全称(hypertext preprocessor)超文本预处理器,开源的,跨平台的脚本语言。
一、动态页面-- 涉及到数据处理的页面
asp--.net--(php--jsp) php开发迅速,可定制
二、网络基本概念
1. IP地址:IP的全称是Internet Protocal Address网际协议地址,就是网络地址。
IP具有唯一性,是由32位二进制构成,分成4字节。现实中“点分十进制”。
特殊IP地址:127.0.0.1代表本身这台计算机。
2.域名:DN Domain Name,就是一个网址,就是一个名字。www.sina.com
构成:字母、数字、中划线, 长度不超过255个字符
特殊的域名:localhost代表本身这台计算机
3.DNS:Domain Nane System域名解析系统,将域名DN转为对应的IP地址。(服务器只能识别IP地址)
DNS是运行在互联网上的服务器。DNS转换器远远不只一台,就近原则。
三、hosts-----本地的DNS 常用作加快访问列表网站或FQ。
hosts
是本地的
DNS
,
DNS
中就是
IP
地址和域名的对应关系表。
hosts
文件路径:
C:\Windows\System32\drivers\etc
#IP地址和域名的对应关系表,IP地址在前,域名在后,中间用空格隔开
127.0.0.1 localhost
计算机优先通过本地hosts解析域名,并访问该IP,所以设置需正确,127.0.0.1
www.google.com //谷歌将无法访问。
四、PHP网页的工作原理
客户端(本地DNS-hosts、远程DNS)《http响应 -----http请求 》服务器Apache (PHP处理器、MySQL数据库)
五、Apache服务器
Apache特点:免费的、跨平台、安全性、配置虚拟主机等
其他服务器:IIS、Nginx
WAMP(windows、apache、mysql、php)LAMP(linux、apache、mysql、php)
六、安装Apache
netstat -ano查看所有端口占用情况
net start apache2.4,net stop apache2.4启动关闭,或D:/zwamp/Apache24/bin/httpd -k start|stop|restart开启
Apache、PHP、mysql三个软件安装在一起。httpd -k uninstall卸载sc delete apache
Apache测试:127.0.0.1、localhost----It works!//成功安装,httpd -v查版本,httpd -M查加载模块
bin---apache主程序及可执行文件,conf---Apache配置文件,htdocs---默认网页根目录,modules---Apache模块文件
七、端口:软件运行时占用的一个编号。范围0-65535,每一个端口号对应一种服务。1000以下端口大部分已被系统占用。
八、Apache配置
Apache配置文件的语法检查命令(apache调错命令)。 httpd.exe(或httpd -t)是Apache的主应用程序,-t是参数
----正确:Systax OK,错误:AH00526: Syntax error on line 247 of D:/zwamp/Apache24/conf/httpd.conf:
set path---显示环境变量所有的目录
环境变量设置:我的电脑右击>>属性>>高级系统设置>>高级>>path,添加文件路径D:\zwamp\Apache24\bin;
1、Listen:监听自己电脑的IP地址或端口的请求,然后提供服务。 语法:Listen [IP地址]:[端口号]----例:Listen 80
2、DocumentRoot:修改网站根目录,在conf/httpd.conf下----DocumentRoot "E:/CZwj/Apqdir"
3、DirectoryIndex:指定网站的默认首页。例DirectoryIndex index.html index.php从左到右依次找
4、<Directory 设置目录路径></Directory>目录权限,当修改了网站根目录的位置,需重新指定该目录的权限。
Options All|None|Indexes//这里要3选1,All开启所有权限,NONE禁止访问目录任何内容,INdexes如首页不存在,则显示目录列表
Order Deny ,Allow //1、设置允许拒绝的先后顺序
Deny from All //2、deny设置拒绝哪些IP地址的访问
Allow from All //3、allow设置允许哪些IP地址的访问
Require all granted//新版本apache需要赋权
上面3句结果是允许所有IP地址的访问,因为第一句allow在后。
九、Apache虚拟主机配置:一台计算机就是一台主机,但为了让一台主机上同时通过不同域名去访问不同页面,出现虚拟主机。
1、虚拟主机介绍:将一台主机划分成”若干个”小空间,每个小空间运行一个独立的网站。
每一个小空间对应一个独立域名。Apache是所有网站共享。PHP也是大家共享。
2、NameVirtualHost 网络地址//多个虚拟主机,都使用哪一个IP地址。一个主机一般只一个IP地址。IP地址要向本地区电信局申请和备案的。
虚拟主机配置步骤:1、hosts指定对应的域名2、Apache的主配置文件httpd.conf 开启虚拟主机3、Apache的虚拟主机配置 httpd-vhosts.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
3、<VirtualHost></VirtualHost>配置段 创建虚拟主机的三要素
NameVirtualHost *:80 // #配置基于指定IP的虚拟主机(要素 1、创建一个虚拟主机)
<VirtualHost *:80> //#配置www.2016.com虚拟主机(要素 2、给虚拟主机设置一个域名)
ServerName www.2016.com //#绑定域名
DirectoryIndex index.html index.php //#默认首页
DocumentRoot "E:/CZwj/www" //#指定网站根目录(要素3、设置虚拟主机中文件存放的路径)
<Directory "E:/CZwj/www"> //#指定目录权限(要素4 、继续设置首页,文件的权限)
Options Indexes
Order Deny,Allow
Allow from all
Require all granted //#虚拟主机配置,apache2.4.2一定要加赋权语句Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80> //典型例子
ServerName www.tpshop.com
DocumentRoot "E:/CZwj/tpshop"
<Directory "E:/CZwj/tpshop">
Options Indexes FollowSymLinks ExecCGI // 在该目录中,服务器将跟踪符号链接,要支持重写时需开启, 在该目录下准许使用CGI
AllowOverride All // Apache服务器是否去找.htacess文件作为配置文件
Require all granted
</Directory>
</VirtualHost>
十、安装PHP,php -v查看php版本号,检查是否成功安装,或<?php echo phpinfo();?>
配置Apache使之能处理php脚本
LoadModule php5_module "D:/zwamp/php5.6/php5apache2_4.dll"---1、LoadModule,加载PHP5的模块
AddType application/x-httpd-php .html .htm .php---2、AddType,调用PHP模块来处理AddType后类型文件
PHPiniDir "D:/zwamp/php5.6"---3、Apache启动时,自动加载Apache的配置文件,还要加载PHP的配置文件。
改时区date.timezone =PRC
十一、MySQL是关系型数据库。瑞典AB公司开发,后被Oracle收购。
测试MySQL是否启动net stop|start mysql
mysql -hlocalhost -uroot -p123456登录,结果Welcome to the MySQL monitor.---exit退出
PHP加载MySQL模块在php.ini中1、extension_dir = "D:\zwamp\php5.6\ext"2、extension=php_mysql.dll
P2-PHP基础2(PHP基础、访问方式、变量、传值)
一、B/S结构和C/S结构,浏览器/服务器,客户端/服务器
编译型语言:词法解析--》语法解析--》生成可执行二进制语言--》生成结果
解释型语言:词法解析--》语法解析--》生成可执行二进制语言--》保存二进制语言到硬盘中--》生成结果
PHP语言:词法解析--》语法解析--》生成可执行二进制语言--》保存二进制语言到内存中--》生成结果------适合处理高并发
1、PHP基础:php全称(Hypertext preprocessor)超文本预处理器,开源的,跨平台的脚本语言。
PHP是嵌入到HTML代码中去,使用不同标记区分不同代码。主要应用Web开发领域,即B/S网络模式下。
2、PHP语法基础
PHP和ASP、JSP一样,都是嵌入到HTML代码中去的;
PHP代码的4种标记:标准模式①<?php ……; ?> 或②<script language='php'>……;<script>
③短标签模式:修改php.ini的short_open_tag = On如:<? echo 'first'; ?>④asp模式<% echo 'first' %>修改php.ini的asp_tags=On
PHP语句结束符是;,php结束标签默?>认自带一个;。php结束标签可省略不写,但在和html混编中易出错。
PHP文件扩展名:.php
PHP语言是区分大小写的(部分),与JS一样;$NAME、$name
PHP中的关键字和函数名不区分大小写。如:break、continue、for、while
PHP中的每一行代码,必须以英文下的分号(;)结束,而JS的分号可以省略;
PHP的语法,与C、JAVA、PERL、JS它们很像。
PHP简单、免费。LAMP环境一分钱可以不用花:Linux+Apache+MySQL+PHP
二、PHP文件访问方式
PHP程序一定运行在服务器端,PHP的访问,必须经过Apache服务器,必须经过域名,才能访问到PHP文件。
PHP的单行注释://或#,多行注释:/* */
在php标记中的代码一定会执行。<!--<?php echo date("Y-m-d")?>-->//结果:查看网页源代码<!--2016-12-23-->
0、PHP变量:临时存储在内存中,由变量名,变量值和之间的索引3部分组成。
变量命名规则:与JS一样,php变量名前要加$标识符号,它不是变量名的一部分,代表它后面的部分是变量名。
PHP变量名区分大小写,php中关键字也可以作为变量名称。如:$break、$for
echo '有什么比敲代码更有趣的?','有,排BUG';//合法
echo'<br>';
echo('有什么比敲代码更有趣的?','有,排BUG');//非法
//echo 空格输出语句可以一次性输出多条语句,如果语句之间使用,进行分隔,而echo()只能输出一条语句。php的字符串连接符是 . JS的字符串连接符是 +。
$name="play";
echo "$name ground"; //play ground ---#1.使用空格(但会有空格存在)
echo "{$name}ground"; //playground ---#2.使用大括号将变量名包裹起来
echo $name."ground"; //playground ---#3.使用字符串连接符.进行连接
echo $name,"ground"; //playground---#4.使用逗号直接将内容当成是两条语句进行输出
1、声明变量和赋值$str,2、读取变量的值echo,echo是语法结构,也可以当函数用
3、判断变量是否存在
isset()---语法:bool isset ( mixed $var [, mixed $... ] )
只有当1变量未定义undefined、或者2变量的值为NULL时,返回的结果才是false,否则返回的结果一律为true;
例:$name="";则isset($name)返回true真。
4、判断变量是否为空
empty()---语法:bool empty ( mixed $var )
说明:如果 var 是1非空或2非零的值,则 empty() 返回 FALSE。如果 var 为空,则返回 TRUE。换句话说,
转换为布尔型结果为false的(除字符串0)""、0、"0"、NULL、FALSE、array()、以及没有任何属性的对象都将被认为是空的。
$empty_object = new stdClass(); var_dump(empty($empty_object));//结果: bool(false)
5、删除变量
unset()
描述:释放给定的变量、释放空间,语法:void unset ( mixed $var [, mixed $... ] )例:unset($name);
删除原理:删除变量名,并断开变量名到数据之间的连接,而数据被保留下来,该数据一旦没有任何变量指向它,将被系统回收。
$m=10; $n=&$m; echo $n; unset($m); echo $n; //结果1010,删除$m时,只是删除$m的连接,数据被保留。
6、显示变量的类型和值
var_dump()语法:void var_dump(mixed $expression [,mixed $... ])
说明:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。
(当输出定长数据如整型,输出类型和数值,当输出不定长数据如字符串,输出类型、长度和数值, )
数组将递归展开值,通过缩进显示其结构。例:var_dump($name1);//string(3) "123"
7、
print_r()——显示变量(尤其是数组)的元素信息语法:bool print_r ( mixed $expression )
说明:如果给出的是 string、integer或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object与数组类似。
8、
可变变量:一个变量的名称,用另一个变量的值来充当(两个$$)。变化的是变量的名称。
$abc="江浙杭州"; $hello="abc"; echo $$helio;//$$hello>转为> $abc >转为>江浙杭州,---可变变量有两个"$"符号。
php数据类型
标量数据类型:整型,浮点型,布尔型,字符串型
复合数据类型:数组,对象
特殊数据类型:空型,资源
三、PHP中拷贝传值:整型,浮点型,布尔型,字符串型,NULL,数组默认是拷贝传值。
PHP中
引用传地址(引用传值):对象和资源默认是引用传地址。
在PHP中,基本数据类型,也可以实现”引用传地址”。
在要引用的变量名前加一个”&”符号,告诉变量要引用你的地址,而不是你的数据。例:$b=&$a;
四、
PHP超全局变量数组(九大超全局预定义数组变量)
以下8个变量,都是数组变量,又称为”预定义变量”。它们的名称是固定的,必须全大写,下划线开头。
$_GET :通过地址栏传递到服务器的数据,必须是GET方式传递;$_GET['id']
$_POST:通过表单 method = post 发送的数据,必须是POST方式传递。
$_REQUEST:包含GET方式 和POST方式的全部数据。
$_SERVER:显示或获取服务器相关的信息。
$GLOBALS:全局中的全局,换话句:包含大部分的超全局数组信息。
$_SESSION:处理服务器的端的会话数据。
$_COOKIE:处理客户端的会话数据。
$_FILES:上传文件需要用到的数组。
$_ENV
注意:除$GLOBALS外其他8个超全局变量都有
_下划线。
1、$_POST~~获取表单使用post方式提交的数据。获取的数据类型一定是数组,数组元素下标是标签name的属性值,数组元素的值是标签value属性的值。
如果想将多个标签里面的内容单独放在一个数组中。给name赋值相同的名称,然后在后面加上一个[]即可。
2、$_GET~~获取的是地址栏所提交数据。注意~~?区分文件名和get提交的数据&区分数组中元素和元素=区分数组元素的下标和值
发送GET数据的方法:往地址栏发送数据有几种方式-get提交数据的几种方式
1直接在地址栏上书写提交的数据//浏览器输入-http://www.wdc.com/PHPlianxi/day3-php3.php?username=wo&password=123456
2通过<a>的href属性提交数据<a href="?username=wo&password=123456">单击</a>
3通过Js中location的href属性提交数据<input type="button" value="" οnclick="location.href='?username=wo&password=123456'">
4通过form表单method=get提交get数据
GET和POST提交数据的区别:1get提交的效率更快,2post的安全性更高,3get提交的只能是字符串,4最大2KB,但是post可以提交附件,大小不限。
3、$_REQUEST
$_REQUEST可以同时获取GET和POST方式传递的数据。$_REQUEST速度比较慢,没有$_GET或$_POST速度快。平常不推荐使用。
当get和post提交了相同下标的不同值,默认情况是以post提交为准。相关设置在php.ini中,request_order="PG"
4、$_SERVER
描述:获取服务器端的相关信息。每一次HTTP请求,$_SERVER数组中已经有了相关信息了。具体查看手册
$str.="<br>远程IP".$_SERVER['REMOTE_ADDR']; $str.="<br>绝对路径".$_SERVER['SCRIPT_FILENAME']."<hr>";……
//实例代码1
<?php
header("content-type:text/html;charset=utf-8");//声明网页字符集
#echo phpinfo();//可测试和查看php配置文件信息
echo date("Y/M/d D H:i:s");//时间
echo '<br>';
/*for($i=0;$i<10;$i++){ //循环,变量标识符$
echo $i." ";
}*/
$name="张三丰";
$sex="男";
$salary=10000;
$str="";
$str.="<h2>{$name}的基本信息</h2>";//连接符.
$str.="姓名:$name";
$str.="<br>性别:$sex";
$str.="<br>工资:$salary";
echo $str.'<hr>';
$arr=array("设计的",199,24);
var_dump($arr);
?>
<?php
if(!(empty($_POST))){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$fh=$_POST['fh'];
if($num1==''||$num2==''){
$result='两边的数据不能为空';
}elseif(!(is_numeric($num1)&&is_numeric($num2))){
$result='两边输入的必须都是纯粹的数字';
}elseif(($fh==4&&$num2==0)||($fh==5&&$num2==0)){
$result='除数和取余数不能为0';
}else{
switch($fh){
case 1:
$result=$num1+$num2;
break;
case 2:
$result=$num1-$num2;
break;
case 3:
$result=$num1*$num2;
break;
case 4:
$result=$num1/$num2;
break;
default:
$result=$num1%$num2;
}
}
}else{
$num1='';
$num2='';
$result='';
$fh=1;
}
?>
<body>
<form method='post' action="">
<input type='text' name='num1' value='<?php echo $num1?>'>
<select name='fh'>
<option value=1 <?php echo $fh==1?'selected':'' ?>>+</option>
<option value=2 <?php echo $fh==2?'selected':'' ?>>-</option>
<option value=3 <?php echo $fh==3?'selected':'' ?>>*</option>
<option value=4 <?php echo $fh==4?'selected':'' ?>>/</option>
<option value=5 <?php echo $fh==5?'selected':'' ?>>%</option>
</select>
<input type='text' name='num2' value='<?php echo $num2?>'>
<input type='submit' value='='>
<?php echo $result;?>
</form>
</body>
P3-PHP基础3(常量、数据类型)
一、PHP常量~~1、常量是值永远不变的量。如:身份证号码、DNA、圆周率等。
常量不能修改(只能声明一次,无法重新赋值),不能删除。
2、命名规则---常量的命名规则与变量一样,但不能加”$”符号;
常量尽量全大写,与变量区分开来;如:DB_HOST、TITLE、CONTENT
3、①常量定义define()语法:bool define(string $name,mixed $value[,bool $case_insensitive=false]);例define(
'PI
',3.14,true);
//定义
引号不能少 //开头处bool值是检验该常量名之前是否被定义过,之前没定义设置常量成功则返回true。
//$name常量名称,$value常量值,$case_insensitive,是否大小写敏感,false(区分大小写),true不区分大小写,默认false
例:define("ID","10735787"); echo ID;//
注意输出不能加""引号。echo constant("ID")可以解析特殊字符常量
②常量判断defined(),例defined("ID")//结果布尔值,注意是defined,不要忘写d
4、PHP预定义常量
PHP_VERSION:PHP版本号,PHP_OS:PHP操作系统
PHP_INT_MAX:PHP支持的最大整数
TRUE:既是常量,也是关键字;FALSE:既是常量,也是关键字。
获取系统中所有常量get_defined_constants(),获取所有已经被定义的常量,包括系统预定义的和我们自己定义的常量。
5、PHP的系统常量,大约有1500多个,可以通过get_defined_constants()函数来获取。
描述:返回所有常量的关联数组,键是常量名,值是常量值
语法:array get_defined_constants ([ bool $categorize = false ] )//false返回一维数组,true返回分组为二维数组
参数:bool $categorize参数,是否显示二维数组,是否常量要分组。例$arr=get_defined_constants(true);print_r($arr);
echo "<pre>";
var_dump(get_defined_constants());
echo "</pre>";
6、PHP魔术常量:在程序运行过程中,值可以随环境的变化而改变的常量。
1__LINE__:获取当前行号;2__FILE__:获取当前文件的绝对路径;3__DIR__:获取当前文件的目录;
4__FUNCTION__:获取当前函数名;5__CLASS__:获取当前类名;6__METHOD__:获取当前方法名
提示:get_defined_constants()中没有魔术常量。
二、PHP数据类型
标量(基本)数据类型:字符串型string、整型int、浮点型float、布尔型boolean
复合数据类型:数组array、对象object
特殊数据类型:资源resource、NULL
0、判断数据类型
var_dump()打印变量的类型和值。
is_bool(),is_int(),isfloat(),is_numeric(),is_array(),is_string(),is_null(),is_resource()
注意:1判断布尔型有点特殊,例:$n=true;is_bool($n)---// bool(true) 别写错 2如果一个字符串是纯数字$n="123"组成,则is_numeric()是true。
form提交的数据都是字符串,使用时需先处理否则无法使用以上方法。
1.整型(占4字节32位,32位中第一位是符号位,表正负,后面31位是用来存储数值大小的,最大值011111111111111)31个1,等于2^31-1。
整型表示方法:十进$a=90,八进制$b=077,十六进制$c=0x89FA
最大整数(PHP_INT_MAX)范围:-2^31(-2147483648)至2^31-1(2147483647)//整型最小值的绝对值比正整数最大值多1,多的1位是负0
如果超出整型最大值,这个数会变成浮点型。如PHP_INT_MAX+1
2.浮点型:就是小数,范围:1.8E-308 ~ 1.8E+308,如果超出范围会变成INF无穷大。echo 1.8E308;//结果INF
PHP表示的是双精度浮点,小数点后14位,如果小数点超出14位,会四舍五入。如:1.1234567891235;如果整型超出14位有效数字,会转换为科学计数法。如:1.2345678912346E+200
E是以10为底。1.8E5:是一种科学计数方式。1.8*10^5 = 180000
echo number_format(19.31*100,20); //格式化数字结果1,930.99999999999977262632
浮点型的比较是不准确的,
浮点数之间不能进行比较在条件判断中尽量不要使用浮点型。例:1-0.7==0.3结果是false,因为浮点型转换为2进制结果是近似的。
3.字符串型
string 中的字符可以通过一个从 0 开始的下标,用类似 array 结构中的方括号包含对应的数字来访问和修改,
比如 $str[42],也可用花括号访问,比如 $str{42}。
PHP 的字符串在内部是字节组成的数组。因此用花括号访问或修改字符串对多字节字符集很不安全。
字符串定义的3种方式:
①用单引号引起来的一串字符,单引号使用'和\需要转义为\'和\\,另外单引号内出现变量会原样输出,php不会解析它。
②用双引号引起来的一串字符,双引号内的转义字符,基本都可以使用。如:\\、\"、\n、\$、\t、\r,转化显示在源码中。
③heredoc标识符,语法:2.将一个字符串放在<<<heredoc和heredoc;之间,两句一头一尾不能乱,
$str=<<<heredoc
//1. 名称随便起,但是前后必须一致,不一定是heredoc,也可以是abc等任意名称,后面不能有东西
巴拉巴拉小魔星 //4.长字符串中可以放置HTML、CSS、JS、PHP的变量,但
不能进行计算
heredoc;
//heredoc;3.必须是单独一行顶格排,并且;后面也不能加任何内容,包括空格!
④nowdoc定界符,将一个字符串放在<<<'nowdoc'和nowdoc;之间一定是单引号
heredoc和nowdoc本质的区别是heredoc内部可以解析php中的变量,
相当于双引号的功能,但是
nowdoc内部只会将php中的变量当成普通字符去输出,
相当于单引号的功能。
echo
(
int
) ((
0.1
+
0.7
)
*
10
);
// 结果为7-
决不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。
$name='100';
echo $name;//结果100。
echo '$name';//结果$name-----单引号内输出内容会将所有的内容当成普通字符进行输出,变量名不会被解析。
echo '<br>';
echo "$name";//结果100------但是双引号输出内容前会先对双引号中的内容进行解析,然后将解析后的结果输出。
在双引号内,如果一个变量后跟一个非空字符,会当成一个变量来处理,其实并没有这个变量。
此时变量最好加{},否则出错。如echo "{$name}abc的基本信息"
⑤nl2br作用:将\n转换为br
⑥
htmlspecialcahrs:将所有特殊字符转换为普通字符输出,出于安全考虑都会加上这句
4、布尔型
布尔型只有两个值true、false。
哪些值转成布尔型认为是FALSE---0、""、"0"、false、NULL、array()、空对象,转成布尔型都认为是FALSE。
5、空型:没有类型,不区分大小写(null,NULL)
如果一个变量不存在,则认为空型,空型只有一个值NULL。
哪些情况认为空?1不存在的变量(未定义);2、Unset()某一个变量;3、NULL,手动赋值为null,作用释放内存空间。
6、资源型
PHP的功能很少,它需要加载第三方的插件来实现其它功能。那么,第三方插件,对于PHP来说,就是它的资源。如:MySQL、GD2、FileSystem等。
资源就是到第三方数据的一个引用,也称为”引用传值”。
例:$link=mysql_connect($db_host,$db_user,$db_pwd);//PHP连接到数据库mysql_connect(IP地址:端口号,用户名,密码);
注意补充:
NAN 代表着
未定义或不可
表述的值。
不应拿 NAN 去和其它值进行比较,否则FALSE,包括其自身,应该用 is_nan() 来检
查。
双引号内可以解析单引号内的变量,但是在关联数组中,双引号并不能解析单引号内的索引。
解决办法是使用复杂语法{}或者去掉索引的单引号。
<?php
$str = 'abc';
echo "this is a '$str'".'<br/>';
$fruit=array('a'=>'apple','b'=>'banana');
echo "This is a $fruit['a']"; //语法错误T_ENCAPSED_AND_WHITESPACE
//解决办法
echo "This is a $fruit[a]";
echo "This is a {$fruit['a']}";
echo "This is a ${fruit['a']}";
?>