zoukankan      html  css  js  c++  java
  • 项目中走马观花式学习PHP

    项目中走马观花式学习PHP

          因项目缘故,需要快速补充php知识,个人有asp基础,较熟悉aspx、c#winform编写,故选择了快速阅读PHP相关资料。整理了一下,给大家参考。阅读的资料都是来自网络,我也不说不清作者是谁了,这里要对带我们这些菜鸟飞的前辈和大神们表示感谢。此外和我一样学过asp的朋友请百度一下php和asp语法的不同,对自己帮助很大。

    第一部分相关知识补充

    一、PHP准备工作

    (一)PHP环境搭建(略)

     建议使用apm,修改相关的参数即可搭建好环境。详情随便百度一下.... 

    第二部分 web客户端技术

    一、web客户端工作原理

    1.浏览器工作原理

    2.HTML工作原理(重点,有兴趣可以了解HTML编程这本书(两年前读完))

    (1)基本结构:

    <html>

    <head>

    <meta…>

    <title></title>

    <script…></script>

    <style…></style>

    <link href= />

    </head>

    <body></body>

    </html>

    (2)相关的代码学习

    位置元素:

    <div></div><pan><pan><marqueee></marquee><center></center><left></left><right></right>

    文本字符:

    <h1></h1>;<br/>,<p></p>,<B></B>,<I></I>,<U></U><font></font>,<STRONG></STRONG>,<SUP></SUP>-上标;<SUB></SUB>-下标

    超链接:

    <a HREF=”URL”></a>

    表格:

    <table><tr><!--tablerow--><td><!--tabledata--></td></tr></table>

    表单:<form action=”” method=”” name=””></form>

    控件:<input type=”” name=””/>-当然还有其他的,这里不一一枚举

    3.js工作原理

    Js记住重要的,getElementByID(“controlID”),setTimeOut(s*1000),样式name.style.sytlename;

    属性name.属性name;document.write(“”);eval(“”)-在html返回字符串

    二、wbe客户端基本技术(数据传递、js javaapp插入等)

    (一).数据传递

    1.post和get数据传递的方法:form中的method

    (1)get的方法通过URL传递用户的输入,url?car_name=value&…&b1=get会显示在网址上,形同超链接,安全性不足,并且限制在2K左右,执行效率比post高。和超链接一样啦

    (2)post通过HTTP POST机制,通过stdin(标准输入)处理,不显示在URL,在php.ini配置>POST_MAXSIZE =2M大小即可.通常情况下都是用post

    (二)js嵌入HTML的方式传递参数

    <Script Language=”JavaScript”>语句;</Script>

    <script language=”JavaScript” src=”.js”></script>

    <input type=”” …onclick=”JavaScript:代码;”>

    (三)客户机对象技术

    1.对象建立:Var new=new Date();

    2.对象引用:

    按层次:windows.document.form1.textfield.value=(文件.控件.控件属性事件方法)

    按下标:HTML控件组设置同样的name=”ah” ,建立一个方法ah[i],通过控件.value.length判断i值的取值

    按名称:同类型type但是不同ID不同name的,document.getElements[“”].value

    按索引:document.forms[i].id(name).value=””;

    3.事件及事件的处理

    I、基本概念:鼠标或者热键动作称作为事件(event),对事件进行处理的程序或者额过程成为事件处理(event handle)

    Function name(parameters ){语句;}

    Ii.主要事件:

    事件

    说明

    相关控件或者实例

    onClick

    鼠标单击发生的事件

    Reset,submit,radio,checkbox,link

    onChange

    数据更改时候

    文本框类,select控件元素

    4.js的内置对象的使用

    数据类型:string math daye

    是否需要创建实例:静态(不需要实例化string)和动态对象(实例化再用如date)

    对象

    属性

    常用方法

    串对象

    Int string.length长度

    1. fontsize;color等等
    2. toLowerCase(),toUperCase
    3. charAt(index),indexOf(“值”),indexOf(对象,对象的index);subString(index)
    4. sup()sub()上下标

    系统函数:

    Document.write(“”)

    Close();clear()-窗口对象

    Eval(“表达式”)-返回表达式的结果

    (四)窗口的对象(window)使用

    输入使用window对象完成,输出使用document对象完成

    Window对象:

    对象

    属性

    方法

    window

    Parent-父窗口;defaltStatus-状态栏默认显示值;status窗口信息栏信息;top-引用顶层窗口;self;frames框架集合;location-窗口文档地址

    Window.open(窗来源,新名称,特征参数)-打开、输出到一个新窗口(特征参数:width,height,toolbar:yes/no;location:yes/no等决定是否显示出来的参数)

    window.alert(“内容”)-弹窗

    window.confirm()确定、取消的弹窗

    window.prompt()弹出可输入的对话框

    window.close()

    Document

    bgColor-网页背景色

    fgColor-前景,字体等

    forms[index]-form集合

    lastModified-修改日期

    linkColor-

    document.links[index]

    location文档地址

    title

    document.clear();

    document.wirte(“”);

    writeln(“”)写入后换行

    onload()-

    onunload()

    三、实验二 web客户端技术

    1.php-html代码基本结构:

    (1)标志(类似asp<%%>)

    <? /*最少有一个空格或者回车*/

    $变量;

    代码:;

    ?>

    (2).变量:定义 $变量名=value;引用-$变量名(什么时候都要$),不必明确变量类型

    (3).常量:直接写

    (4).赋值运算:=(跟面向性语言不同点,易混淆)

    (5)语句结束符号:“;”

    (6)关键字:echo 可换成print  

    (7)注释:# //

    2.常用变量处理函数

    函数(变量用$var代替)

    说明

    实例

    (string)gettype($var)

    获取变量类型

    (bool)is_int/array/object($var)

    判断变量是不是*类型

    unset($变量),unset($数组[‘$var’])

    释放和消除定义好的变量

    empty($var)

    检查变量是不是为空

    var_dump($var)

    打印变量的相关信息、数组的结构等

    print_r($var)

    显示变量类型,键,取值

    小知识:=>数组成员访问:$arr=arry(“A”=>”this is 1”);$arr[A].value=”this is 1”-1表示键名

    ->对象成员访问,类似,也是“键名->键值”

    第三部分 PHP语法

    一、基本语法

    (一)、访问客户端变量的方法(获取变量)

    看看asp和php语法语法不同点,方便快速上手,其他细节问题做的时候注意一下就可以

    显示

    Response.write

    Echo

    转向

    Response.redirect “a.asp”

    Header(“location:a.php”)

    获取表单数据

    Request.form(“a”)

    $_POST[“a”]

    获取URL数据

    Request.querystring(“a”)

    $_GET[“a”]

    获取数据

    Request(“a”)

    $_REQUEST[“a”]

    发送COOKIES数据

    Response.cookies(“a”)=”b”

    Response.cookies(“a”).expires=date+1

    setCookies(“a”,”b”,time()+3600)

    接收COOKIES数据

    Request.cookies(“a”)

    $_COOKIE[“a”]

    全局变量SESSION

    Session(“a”)

    $_SESSION[“a”]

    (二)PHP变量的作用域

    客户端变量:表单变量、查询字符串,客户端人员提交的作用于一个PHP页面

    服务端程序员变量:程序员定义,作用域服务器

    预定义变量:$_SERVER;$_ENV等系统预定好的变量,作用域是全局的(大写的)

    (三)超全局变量数组

    1.存在客户端的超全局变量:$_POST;$_GET;$_COOKIE;$RQUEST;$_FILES(已上传的文件);$_SESSION;

    2.全局:$_GROBALS;全部全局数组

    3.$_SERVER:web信息的数组,包含header 路径和脚本位置等服务器信息

    4.PHP_SELF:当前整咋执行脚本的文件名,于document root相关:

    echo $PHP_SELF;//php.ini—register_globals=on;echo $_SERVER[“PHP_SELF”];// =off

    5.其他超全局:

    apache配置的变量:SERVER_NAME;SERVER_SOFTWEAR;DOCUMENT_ROOT;

    客户机信息:HTTP_USER_AGENT客户端浏览器的信息;REOTE_ADDR客户机IP;REMOTE_HOST客户机主机名

    对应全局变量的方法:get**by**:$IP=hostbyname(“www.dzu.cn”);

    小知识积累:isset($var),如果变量存在且不为null,返回为true。 isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

     

    (四)数据类型(涉及到转义符)

    1.原始数据:

    标量-bool;int;float;string;

    符合类型-array;resource

    特殊类型:resource

    2.伪类型:maxed-判断参数可接受多少种不同的类型 number判断该参数是否是int或者float

    这里详细不谈,只需要注意string字段会涉及到转义符:(跟java c#一样)

    -换行; 回车; 制表符;\反斜杠;$美元符号-总之就是有异义的字符都要在前面加“”

    数组array:$arr=array(“keyname1”=>value,”keyname2”=>value2;…);keyname:string/int

    (1)里面的元素排列,指明键名的按照键名,没有指明的按照上一个键名(int的话)递增:

    array(1=>”01”,2=>”02”)等同array(1=>”01”,02,…)

    (2)在最后元素位置添加元素:直接定义$arr[]=newvalue;删除:upset($arr),arr[keyname]

    (3)遍历数组:

    l         foreach($arr  as $key=>$value){;},$key可以省略

    l         list:$arr=array(1=>”01”,2=>”02”);list(“$a”,”$b”,”$c”)=$arr;print $a;

    (五)运算符

    1.算术:+-*/ %

    2.赋值运算:=,+=

    3.错误控制运算符:@,无论发生生么错误都会忽略

    4.比较运算符:==,!=,<,>等c#一模一样

    5.逻辑:&& || ! xor-异或

    6.字符串连接操作符:(C#不同)“.”添加,“.=”$a.=$b等价于$a=$b+$a

    (六)函数

    1.系统函数

    函数名称

    说明

    备注

    (int )strlen($var)

    获取字符串的长度

    (string)substr($var,index,lenght)

    截取字符串

    Length可以省略,表示到最后

    ord($var)

    获取字符的ASCii码

    str($var)

    获取ASCII对应的字符

    trim(..)

    去掉首位空格

    ltrim(...)

    去掉首空格

    rtrim(..)

    去掉最后的空格

    explode(“separator”,$var)

    C#a.split(‘|’)分割成数组

    implode($var1,$var2…..)

    连接成字符串

    2.时间日期函数库

    (string)date(string format);format主要有:Y/m/d H:i:s (格式:2014/10/27 18:00:00)

    可以适当安排分割符号 getdate()也是这样的

    3.http相关函数

    header(“html<head>标志里面的内容”),如location 、contenttype 、status等等

    如hearder(“Location=http://2345.com”)等同于js:window.locatin=URL;

    4.数学函数库

    floor(float value)向下取整数(都舍弃),返回不大于该数的整数;ceil(..)向上取整,不小于原来数;

    (七)session的应用

    1.session基本情况:180分钟,可以在php.ini中的session.cache_expire设置

    储存在文本文件中,sess_dsfdfsfsdf…..(无扩展名)

    S_varname | s(变量类型) : 22(长度) :”值”;下一个变量数组….

    2.使用session

    (1)服务器建立好文件夹,在php.ini文件写入session_save_path=../文件夹/,

    (2)开始使用session:

    (bool)session_start();-//必须在任务向浏览器输出之前进行;

    (bool)session_register(string name);//定义好session的名称

    Echo $name;//使用

    unset($name);或者unset($_SESSION[“name”]);

    二、PHP编程要点

    (一)流程控制结构

    1.基本结构if swich for break等同C语言

    2.exit和die:

    Exit([string message])-输出message后终止脚本,die相同

    3.包含文件require(“文件名”),include(“文件名”);若找不到问及那,require报错停止,include报错继续执行其他可以执行的<? Require(“database_open.php”) ?>--打开数据库

    (二)嵌入html或者javascript

    <? Php… ?> <script language=”php”>…</script>

    <?    …?>-php.ini配置short_open_tag=on可用;<%% > -php.ini asp_tag=on可用

    4.自服务程序—将请求和响应合成的程序,称为自服务程序

    三、php语法实验(略)

    第四部分 mysql数据库

    一、MySql的基本使用

    1.命令:mysql –h servername(IP) –u username –p (password)

    -h:host 空白表示localhost;-u:user;-p:使用密码

    文件结构:每张表包括myd(数据),myi(索引),frm(表定义文件)三个文件

    2.数据库操作:

    创建db: create datbase db_name

    查看数据库列表:show databases

    打开选定的数据库:use db_name;

    删除数据库:drop database [if exist] db_name;

    3.表操作

    创建表:CREATE TABEL tb_name(column1,column2,…,)

    查看表列表:show tables

    查看表结构:describe tb_name

    查询数据:select * from…[where condition]

    删除数据:delete from tb_name [where condition]

    4.权限管理

    授权:Grant 权限列表(inset,update,delete,select) on db_name.tb_name to “username” @ “host” [identified by “password”][with grant option]

    设置密码:Set password for “username” @ “host” =PASSWORD(“newpassword”);

    回收权限:revoke all privileges on “.” from “username” @ ”host”

    刷新权限:flush privileges;

    二、PHP操纵MySql

    (一)常用数据库连接命令

    PHP命令

    语法

    作用

    mysql_error

    (string)mysql_error

    返回上一错误文本,没有返回“”

    mysql_errno

    (int)mysql_errno

    返回上一个sql错误,没有的话返回0

    mysql_connect

    mysql_connect($servername,$username,$psw)

    此外还有mysql_pconnect-永久打开连接

    失败false,成功返回资源型连接标识

    mysql_close

    (bool)mysql_close()

    关闭连接

    mysql_select_db

    (bool)mysql_select_db(db_name[,resource link_identifier])---resourcelink一般是conn

    True;false

    mysql_query

    (resource)mysql_query(sql语句[,resource link_identifier])-结果可做数据源

    执行查询语句,成功返回资源性标识符,不正确返false

    mysql_num_rows()

    (int)

    查询结构行数(记录数)

    mysql_affected_rows()

    (int)

    受影响行数(执行的结果)

    mysql_fetch_array

    (array)mysql_fetch_array(查询结果[,int返回类型])

    返回查询结果转为数组,如果没有则返回false

    mysql_free_result

    (bool)mysql_freee_result(查询结果)

    释放插叙记录,清空内存

    (二)常用列的类型(方便类型之间的引用和转换):

    M:列最大的显示类型,最大为255; D:浮点类型,指出小数点后多少位,最大可能为30,不小于M-2

    1.数字类型

    2.日期时间类型

    3.字符类型

    (三)用在查询中的运算符和函数

    1.强制运算:用括号括起来“()”

    2.算术:加减乘除等按照算术优先顺序

    3.逻辑运算:null-假;not假,!逻辑非,|| or;&&and;

    4.比较:= ;<> ;!= ;>=;is null 是否为空,IS NOT NULL是否不为空;between and;in(..)

    ISNULL(..);

    5.字符串比较函数:

    like和通配符号

    (1)%匹配任何数目的字符,包括零个select ‘David’ LIKE ‘%D%V%’

    (2)_精确匹配一个字符:select ‘DVI’ LIKE ‘DV_’;

    6.流程控制函数

    (1)If(条件,成立的结果,不成立的结果);类似c# :条件?成立结果:不成立结果

    mySql>Select if(0.1,1,0)—结果是0,0.1没有比较符号,默认判断是不是整数,故结果为非

    mySql>Select if(0.1<>0,1,0)—结果是1

    (2)select case:

    mySql>select case $var where condition1($var=value1) then action-1 when condition2($var=value2)  then action-2 …else action-0 end;

    7.数学函数:所有数学函数在一个出错的情况下返回null

    ABS(X);SIGN(X)-返回函数的正负号,MOD(N,M),FLOOR(X),CEILING(X)

    其中注意的是ROUND(x,n)四舍五入,结果的小数位数为n,RAND(种子值)0-1随机小数

    Mysql>select RAND(20);mysql>select least(a1,a2)-选择最小的;greatest(….)最大的

    8.字符串:

    mysql>select 1+”1”->2  根据上下文转换

    mysql>select Concat(a1,a2…):非空值字符串连接,如出现null,结果都是null

    mysql>select left(string ,len);返回左边len个字符,right(string ,len)从右边开始

    substring(str,startno,length);mid(str,startno,length);LTRIM(str),RTRIM(str)-去掉左右空格

    space(n)有n个空格组成的一个字符串;repeat(str,count)重复count次str;

    upcase(“”)大写

    9.日期和时间

    mysql>now() ;systemdate();current_timestamp();curdate()=current_date();surteme()

    10.分组计算

    Mysql>select count(*),count(distinct 列名) AVG() MIN MAX SUM   GROUP BY…

    第五部分 项目实践(略)

    快速学习PHP到此结束了。这里只能提供一些理论上的知识,都是基于认识层面,多参加项目,多做多练才能深入。熟悉这个的基础上,我们还可以学习php的IC框架,那是后面的事情了....

  • 相关阅读:
    A
    Hdu 1856(离散化+并查集)More is better
    Hat’s Words hdu-1247
    K
    I
    L
    F
    M
    Javascript 编码规范
    Chrome开发者工具之JavaScript内存分析
  • 原文地址:https://www.cnblogs.com/mrrxu/p/4104230.html
Copyright © 2011-2022 走看看