跟javascript 差不多,也是个脚本语言,我也用一篇文章写完也没问题吧?
关于javascript的基本语法 http://blog.csdn.net/skyjie6/article/details/38659407
第一章、使用PHP
PHP的开始标记和结束标记
①<?PHP ?>
如果将php.ini中的short_open_tag设置为On,可以简写为<? 和?>
②<% %>
这个是ASP风格,需要将php.ini中的asp_tags设置为On
③<script language="PHP"> </script>
html语法来的
嵌入HTML
不同javascript的是,PHP更多放在<body> </body>标签之间
<html>
<head>
<title>第一个PHP程序</title>
</head>
<body>
<?PHP
echo "helloworld- -!" ;
echo "使用PHP!" ; //双斜杠是注释,echo是输出语句
# 井号也是注释
/* 这个也是注释 */
?>
</body>
</html>
第二章、基本元素
常量
define("JIE","576984704");
变量
<pre name="code" class="php"><?PHP
$a="10个变量"; //使用$ 表示一个变量
$b=2;
$c=TRUE;
$b=$a; //值传递,此时b的类型变为string
$c=&$a; //地址传递
$d=$a * 2; //类型转换,此时d的值是20;
?>
语句
条件语句
字符串
数组
<form id="form1" method="get" action="ShowInfo.php" >
使用GET方法提高数据时,URL格式就是
http://网址/处理脚本?参数名=参数值
<form id="form1" method="post" action="ShowInfo.php?flag=1" >
POST来提交数据,flag=1表示脚本参数,是GET的一种
像上面,简单几句话,其中enctpe="multipart/form-data" 是上传文件固定格式
<form nam="form1" method="post" action="upfile.php" enctype="multipart/form-data">
<input type="file" name="file1" style="width:80%" value="" />
<input type="submit" name="Submit" value="上传" />
</form>
可以使用$FILES[文件name][内容]来访问
$FILES['file1']['NAME'] :表示文件名称
upfile.php
<?PHP
//getcwd()是返回当前工作目录
$upload_dir=getcwd(). "\\images\\";
if(!is_dir($upload_dir)) //is_dir($filename) 判断文件或目录是否存在
mkdir($upload_dir); //mkdir($pathname) 创建目录
function makefilename(){
$curtime=getdate(){ //获取当前的时间
$filename=$curtime['year'].$curtime['mon].$curtime['mday']."jpeg";
Return $filename;
}
$newfile=$upload_dir.makefilename();
if(file_exists($_FILES[file1]['tmp_name'])){ //file_exists($filename)判断文件是不是已经存在
move_uploaded_file($_file($_FILES['file1']['tmp_name'],$newfile); //['tmp_name']是文件保存在服务端临时的文件名
}
?>
第四章、自定义函数
跟其他语言有点像,格式如下
function 函数名 (参数)
{
函数体
}
函数内的变量都是局部变量,当然函数内可以定义静态变量
静态变量:函数结束时不释放,而是保留下来,下次再调用这个函数时,值不变.
static %count=1; 第一次调用时1,以后每次调用不一定是1;
参数可以按值传递,也可以是按引用传递(变量前加&)
如果参数后面有等号和数值,那么一开始就是有默认值的
参数个数可变长,比如sum(),可以食sum(1,2,3,4,5,6,7);
return返回一个函数值,可以是任何类型.要返回多个值则可以返回数组.然后结束函数
func_num_args() :返回有多少个传递给函数的参数
func_get_arg() :返回传递给函数参数的列表
func_get_args() :返回传递给函数参数的列表组成的数组
<?PHP
$a=100; //全局变量
function setNumber(){
$a=10; //局部变量 ,如果要在函数内使用全局变量的话应该加一句 global $a;
echo($a);
}
setNumber();
echo($a); //此时$a还是100,局部变量在函数退出时已关闭.
?>
引用函数库
函数一般不希望被用户看到,所以写在其他php文件中,然后需要时再导入,就可以用到里面的函数了
有以下几种方法:
①include("lib\mylib.php");
②require("lib\mylib.php");
③require_once("lib\mylib.php");
以上基本用法相同,不过当找不到要找的文件时,include发出警告,require是提出有错误.而require_once则是升级版,可以防止重复导入.
第五章、面向对象
类
<?php
class ABC //类名
{
var $str="MYSTRING"; //定义成员变量,允许同时赋值
public $a; //定义公有变量
private %b; //定义私有变量
function output(){ //定义成员函数
echo($this->str);
}
}
?>
同时也像其他语言那样有 构造函数和 析构函数,他们都是规定名字
构造函数: function _construct() {}
析构函数 function _destruct () {}
使用定义new来定义一个对象
$mystr=new MyString('admin','pwd');
使用static 定义静态变量或者静态函数
静态变量和函数不属于任何一个实例化的对象.
例如user类里面有静态成员count.每当有个user对象产生时count++,销毁时count--.
而静态函数get_count用来获取count.
$this->count 对象成员
$self::count 静态成员
继承:这个类似C++,不详细说
class B extends A 表达为B继承A.
使用abstract 修饰函数,变为抽象类
抽象类函数是指如果有子继承,那么这个子类必须重载父类的抽象类函数,否则报错
复制对象
①直接用"=" : $newcircle = $mycircle;
②使用函数
function drawcircle ($shape){
if($shape instanceof shape){ //instanceof 判断是否某个抽象类
$shape -> draw();
}
}
上面这里其实相当于一个虚函数.就是当参数是直线时,draw的对象是直线.是圆时,则draw圆
第六章、会话处理
HTTP为无状态的协议,每次请求都是独立的。
比如说购买界面你登陆了,但是评论界面还需要再登陆一次,因为界面间是独立的。
常用的有 cookie 和 Session 两种方法
cookie
设置cookie
bool setcookie ( string $name , string $value, int $expire,string $path , string $domain ,bool $secure ,bool $httponly)
name 表示为Cookie名, value 是值, expire就是秒为单位的时间
path 是服务器路劲,该目录下能访问cookie
domain 是Cookie的域名,此域名下能访问
secure 是通过HTTP连接来传输Cookie
httponly 指定只有http协议才能访问
setcookie("TestCookie" , $value ,time()+60*60*24*30); //创捷一个cookie,名字为TestCookie,值是变量value,时间是60*60*24*30秒,就是一个月
再来一例子:
<?php
if(isset($_COOKIE["num"])) $num=$_COOKIE["num"]; //isset判断是否存在cookie
else $num=0; //$_COOKIE 这个表示所有cookie的集合
$num=$num+1;
setcookie("num",$num,time()+60*60*24*30);
?>
删除cookie
setcookie("TestCookie" ," ",time()-3600); //时间设置为1小时前,相当于删除
平时常用的网站都有一周内自动登录,思考下是什么原理?
首先定义一个<input name="checkboxCookie" type="checkbox" checked>
然后用户名和密码的的值读取cookie :<input type="text" name="username" value="<?PHP echo($_COOKIE["username"]);?> ">
然后提交按钮的处理脚本是check.php~~~表示要是成功登陆的话则保存信息
Session
session不同之处在于他是保存在服务器上的,分配每个用户一个对应的Session ID(SID)
开始会话:
bool session_start(void); 会随机获得SID.
如果要自行设置SID的话:
string session_id(string $id) 写了id的话就是设置id,没写的话就是获取当前的id
string session_name(string $id) 效果同上的, 写了name的话就是设置name,没写的话就是获取当前的name
跟$_COOKIE一样,用$_SESSION表示session的全局数组
$_SESSION["last_visit"]表示上次访问网页的时间 $_SESSION["num_visits"]表示访问网页的次数
删除变量,也用于删除会话变量
void unset(mixed $var, mixed $var2,.......)
销毁会话
session_unset(void) //删除所有会话变量,但不删除文件和ID,相当于释放了$_SESSION
session_destroy(void) //删除当前用户的文件和ID,但保留会话变量
第七章、MySQL数据管理
SQL语句就略过了
PHP使用MySQLi函数,需要找到php.ini
然后把;extension=php_mysqli.dll 前面的;删去,保存后复制到windows的目录下重新启动Acpache服务就可以了
连接数据库(三种方法
①$mysqli=mysqli_connect "(服务器" , " 用户名" , " 密码" , "数据库名" )
②上面的函数也可以改为 mysqli(服务器" , " 用户名" , " 密码" , "数据库名" )
③使用mysqli_init()函数
$mysqli=mysqli_init();
$mysqli->real_connect(服务器" , " 用户名" , " 密码" , "数据库名" )
执行SQL语句(二种方法
①mysqli_query(连接对象,SQL语句)
②$conn->query(SQL语句) $conn是已经连接的
其他:
$conn->multi_query() 一次执行多个SQL语句
Sconn->store_result() 返回一个SELECT语句结果集
$conn->next->result() 获得下一个结果集
关闭数据库
mysqli_close($conn);
<?php
//第一步连接数据库
$conn=mysqli_connect("localhost","root","pass","MySQLDB")
if(empty($conn)) {
//判断是否连接成功,die相当于exit(),退出当前脚本
die("mysql_connect failed:" . mysqli_connect_error() );
}
mysqli_query($conn, "SET NAMES gb2312"); //设置字体为utf8,不然是乱码
$query="SELECT EmpName FROM Employees;";
$query .="SELECT DepName FROM Department;";
if($conn->multi_query($query)){
do{
if ( $result = $conn ->store_result() )
{
while($row = $result->fetch_row() ) //获取一条记录
{ echo($row[0] . "<br>") ; }
$retult->close();
}
}while ($conn->next_result());
}
$conn->close();
?>
代码好长啊不打了好不好啊,我写关键代码自己组合吧
$_GET['page'] //获取当前页码
例如: http://localhost/viewPage.php?page=2 //$page-1表示上一页,+1就是下一页. 当=$PageCount就是最后一页啦
$sql = "SELECT COUNT(1) FROM Employees" //使用COUNT获得记录数
$results = $conn -> query($sql);
用除法将总记录数除以页数来分页显示
到此为止,已经学完PHP基本所有语法了
至于留言板啊,公告啊,二手平台那些实验都是以上组合起来的,这里不能嵌入PHP代码就不释放啦(才不是懒
总之就是用上的来组合.只能说是基础,要深入,还得再借书学习啊