PHP程序设计基础

CGI的基本概念

PHP的简单程序

 

CGI的基本概念

HTML用户虽然可以通过表单将数据发送到Web服务器,但是HTML无法与数据库交互。这就需要在HTML网页与数据库之间架设一个沟通的渠道,这就是通用网关接口(Common Gateway Interface,CGI)。它也是万维网动态网页机制之一。CGI是外部扩展应用程序(例如Perl编写的Perl脚本语言)与Web服务器交互的一种通用的接口标准。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入(例如表单方式)的需要协同工作的数据,并将相应的处理结果给浏览器。从而完成客户端与服务器的交互操作,大大扩展了Web提供的功能。

 

PHP的简单程序

将该程序存放在apache根目录下的greeting.php文件中

 1 <html>
 2 <head>
 3 <title>The First Greeting from PHP </title>
 4 </head>
 5 <body>
 6 <?
 7 echo "hello,$name
";
 8 ?>
 9 </body>
10 </html>

打开浏览器,在地址栏输入http://localhost/greeting.php?name=Cheng,回车。从IE中查看源文件的PHP输出,可以看到6-8行变为"hello,Cheng"。

PHP网页除了需要Web服务器和浏览器的参与外,还需要经过CGI模块处理才能显示(本例中用的是Aache的PHP解释模块);PHP网页的程序参数(或变量)可以从地址栏附在网页的URL一起输入,如网址后附带的"?name=Cheng",等号左边是变量名,右侧的是变量值,当需要输入的数据项多于一项时,数据项之间要用"&"号隔开。

<1>将PHP程序嵌入网页的方法:

<?
echo("这是第一个PHP语言的嵌入例子
");
?>

规范形式
<?php
echo("这是第二个PHP语言的嵌入例子
");
?>

<2>PHP中引用文件的方法

a,require("MyRequiredFile.php");

该函数一般放在PHP程序的最前面,PHP程序在执行前,就会先读入require语句所指定引入的文件,使它变成PHP网页的一部分。用此方法可将常用的函数引入网页中

b,include("MyRequiredFile.php");

该函数一般放在流程控制中。PHP程序网页在读到include语句时,才将相关的文件读进来。这样可把流程处理程序简化,增强可读性

<3>PHP的注释: 可用"//"或"/* */"

PHP的常量,变量和数据类型

说明:PHP是一种弱类型的程序语言,即一个变量可以存储任意类型的数据;

定义或分配简单的数据类型(标量或数组),第一次使用变量名就相当于定义它;

PHP中的变量名区分大小写,不能以数字字符开始。

<1>PHP基本数据类型

布尔型:它的值可以为TURE或FALSE。这些情况也被认为是FALSE:0,0.0,"0",空白字符串(""),只声明没有赋值的数组等。  

整数:$integer=100;//十进制    $integer=0666;//八进制   $integer=0x888;//十六进制

浮点型(float/double):   $php=1.2;   $php=1.0E3;//科学计数    $php=7e-6;

字符串:可给字符串加单引号,双引号

<2>内置环境变量和常量

__ FILE__,执行中的PHP程序文件名
__LINE __,执行中PHP程序行数
PHP_VISION,PHP程序的版本
PHP_OS,执行PHP的操作系统名称
TRUE,真值
FALSE,假值
E_ERROR,指向最近的错误处

 所有以E_开头形式的常量,可以参考PHP手册中,error_reporting()函数

自定义所需的常量:define("PI", "3.14");  echo PI; 

<3>PHP变量类型

标量:用来记录单个信息,一次保存四种基本数据类型中的一种

数组:存储数值的列表

$arr_names[]='Jack';  $arr_names[]='Tom'; //arr_names第一次使用,这两个元素的下标分别为0,1

$arr_animal['panda']='rare animal';  或$arr_animal=array('panda'=>'rare animal' , 'dog'=>'home animal');  //用于数组下标的字符串须用单引号括起来,且不能有空格

$arr_mixed=array(2,54,‟Jack‟=>'the first name','application');    //混合下标,数组下标分别为0、1、'Jack'和2

多维数组:

$arr_books=array('book1'=>array('name'=>'The New History' , 'pages' => 400) , 'book2'=>array('name'=>'Children of the Mind' , 'pages'=>500));

echo $arr_books['book1']['pages'];

$arr_books['book1']['author']='Orson Scott Card';  //多维数组随时都可以加入需要的元素

对象:存储变量信息和函数

资源变量:用来保存了对外部资源的引用所得到得结果

PHP运算符和函数

<1>字符串的连接符:$a="hello"; echo $a.','.'world'.'<br>';

算术运算符,赋值运算符:$a+=5; $b="我"; $b.="们"; //$b="我们";

逻辑运算符:&&  ||  !

区地址运算符:$a表示一个标量,&$a表示实际存储标量$a的地址

三元运算符:(expr1)? (expr2): (expr3);

三种语言结构:顺序,分支,循环,switch(expr)

<2>PHP函数分为两类:有返回值的函数和无返回值的函数,相当于Pascal中的函数(function)和过程(procedure),两者的区别在于是否有return

函数的定义:function func_name (参数列表)  { 函数功能 }  //其返回值可以是个标量或数组

按值调用和按址调用:

<?  //按值调用
function add1($value) {$value++;}
$a = 2;
add1($a);
echo "$a<br>";  //$a=2
?>
<?   //按址调用
function add2(&$value) {$value++;}
$a = 2;
add2($a);
echo "$a<br>";  //$a=3
?>

PHP函数

PHP网页参数传递

<1>$_POST['表单控件名']

$_GET['参数名']

应用举例:(与前文中的表单标记对应)

//wp2.php
<html>
<body>
<?php
//显示函数
function echo_message($u_type)
{
$u_type = $_POST[$u_type];
if( $u_type == "我的建议是:") $u_type = "";
if( $u_type == "") $u_type="(空)";
echo "<font color=red>".$u_type."</font>";
}
//显示擅长语言函数
function echo_lang()
{
$lang = $_POST[language];
$j = count($lang);
for($i=0;$i<$j;$i++)
{
    echo "<font color=red>".$lang[$i]."</font>&nbsp;";
}
}
?>
姓名:<?php echo_message('myname');?><br>
用户名:<?php echo_message('user');?><br>
性别:<?php echo_message('gender');?><br>
血型:<?php echo_message('bloodtype');?><br>
擅长语言:<?php echo_lang();?><br>
最擅长操作系统:<?php echo_message('OS');?><br>
上传的文件:<?php echo_message('upload');?><br>
建议:<?php echo_message('advice');?><br>
<button>确认</button>
</body>
</html>

<2>SESSION会话的使用

session_start()开始一个会话或者返回已经存在的会话

$_SESSION['xxx']=xxx  :注册SESSION全局变量。和GET,POST,COOKIE的使用方法相似,具体使用如下:

<?php  //w1.php
session_start();  //使用SESSION前必须调用该函数。
$_SESSION['name']="我是黑旋风李逵!";  //注册一个SESSION变量
$_SESSION['passwd']="mynameislikui";
$_SESSION['time']=time();
echo "<br /><a href='w2.php'>通过COOKIE传递SESSION</a>"; //如果客户端支持cookie,可通过该链接传递session到下一页。
echo "<br /><a href='w2.php?" . SID ."'>通过URL传递SESSION</a>";//客户端不支持cookie时,使用该办法传递session.
?>
<?php //w2.php
session_start();
echo $_SESSION['name']."<br>";
echo $_SESSION['passwd']."<br>";
echo date('Y m d H:i:s',$_SESSION['time'])."<br>";
echo "<br /><a href='w1.php'>返回上一页</a>";
?>

 session_id() :用于设定或取得当前session_id,php5也可以通过附加在url上的SID取得当前会话的session_id和session_name。若session_id()有具体指定值,则取代当前的session_id值。使用前先启动会话session_start()

isset($_SESSION['xxx'] :检查session是否存在

session_regenerate_id() :更改session_id,成功返回true,失败返回false。使用该函数可以为当前session更改session_id,但不改变当前session的其他信息

session_name() :返回当前session的name或改变当前session的name。若要改变当前session的name,必须在session_start()之前调用该函数。注意:session_name不能只由数字组成,它至少包含一个字母。

unset ($_SESSION['xxx']) :删除单个session

unset($_SESSION) :此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_SESSION变量。

$_SESSION=array() 删除多个session

<?php
session_start();
$old_sessionid = session_id();
session_regenerate_id();
$new_sessionid = session_id();
echo "原始 SessionID: $old_sessionid<br />";
echo "新的 SessionID: $new_sessionid<br />";
echo"<pre>";
print_r($_SESSION);
echo"</pre>";
?>
结果是:
原始 SessionID: 2a218c061f4964ee0d0209ebc70a4f8e
新的 SessionID: 0f34199b49e7cbc8804387b5a61d21d8
Array
(
    [name] => 我是黑旋风李逵!
    [passwd] => mynameislikui
    [time] => 1417957843
)
原文地址:https://www.cnblogs.com/zhoutian220/p/4143731.html