PHP语言速成
来源:互联网 发布:php替换字符串中一部分 编辑:程序博客网 时间:2024/05/22 14:45
跟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则是升级版,可以防止重复导入.
第五章、面向对象
类
<?phpclass 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秒,就是一个月
再来一例子:
<?phpif(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代码就不释放啦(才不是懒
总之就是用上的来组合.只能说是基础,要深入,还得再借书学习啊
- PHP语言速成
- PHP入门速成
- PHP入门速成
- php入门速成
- javascript语言速成
- C语言速成篇
- C语言一夜速成
- C 语言一夜速成!!!
- 速成
- HTML空格 来自 孙鑫<<html语言速成>>
- 【大数据】R语言速成与实战
- C++语言代码检查工具PC-Lint四步速成
- C++语言代码检查工具PC-Lint四步速成
- C语言速成手册(六):其它问题、后记
- C语言速成手册(三):数组、字符串、结构
- 如何用VC++2008速成版编译C语言
- 使用C++语言编写多线程程序的速成代码
- 用Go写Android程序(3) - Go语言速成
- Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库
- Fine-tuning on our database with Caffe
- ACM训练题(关于括号匹配问题)
- Android Manifest.xml 结构详解
- jquery mini ui
- PHP语言速成
- NRF24L01 无线通信模块使用方法
- storm UI界面各参数全解
- Android开发之杂记(3)
- 中国云服务质量评测系列报告-CPU专项评测结果
- Dubbo架构设计详解
- 呵护眼睛,从小事做起
- Java关键字this,super使用总结
- 开发中遇到的随手记