PHP Web开发(0)

来源:互联网 发布:我的淘宝流量暴增 编辑:程序博客网 时间:2024/06/05 23:03
本博客介绍了怎样使用PHP进行web开发。

简介

php是一种服务器端脚本语言,专为web设计,在一个HTML页面中可以嵌入php代码,这些代码在每次页面被访问时执行,php代码将在web服务器被解释并生成HTML或其他输出。
使用的数据库为mysql数据库。mysql是一个多用户、多线程的服务器,使用sql查询。

PHP语法简介

PHP标记有4种风格:
XML风格:

<?php echo '<p>Order Processed</p>';?>

简短风格:

<? ...?>

需要在配置文件中启用short_open_tag选项,或启用短标记编译PHP
SCRIPT风格:

<script language ='php'>...</script>

ASP风格:
<%…%>
需要在配置设定中启用asp_tags选项。

访问表单的3种风格:
访问表单提交的name域——
name//shortstyle_POST[‘name’]//medium style
$HTTP_POST_VARS[‘name’]//long style
简短风格须将register_globals配置选项设为on
中等风格推荐使用
冗长风格弃用

中等风格涉及了从$_POST、$_GET与$_REQUEST数组之一检索变量,根据POST方法还是GET方法决定从哪个数组选取变量,但REQUEST中可取到所有数据。

使用heredoc语法指定一个长字符串:

echo <<<EOF.........EOF

可变变量:

$varname='name';$$varname=5;//相当于$name=5;

定义使用常量:

define('NAME',value);echo NAME;

使用phpinfo函数输出php自定义的常量与变量
变量的作用域:
PHP有6种基本的作用域规则——
内置超级全局变量可以在脚本的任何位置可见
常量全局可见
一个脚本中声明的全局变量在整个脚本可见但不是在函数内部
函数内部使用的变量声明为全局变量时名称要与全局变量名一致
在函数内部创建并声明为静态的变量无法在函数外部可见,但可在函数的多次执行过程中保值
函数内部创建的变量对函数而言是本地的,但当函数终止时变量不再存在

超级全局变量可在任何位置可见:

$GLOBALS(所有全局变量数组) $_SERVER(服务器全局变量数组)     $_GET  $_POST  $_COOKIE(cookie变量数组) $_FILES(文件上传相关数组) $_ENV(环境变量数组) $_REQUEST($_GET,$_POST,$_COOKIE) $_SESSION(会话变量数组)引用操作:&符号,unset($a)可以解除引用恒等:===值相同且类型相同错误抑制操作符:@(表达式)  抑制警告启用PHP配置文件的track_errors特性则错误消息将保存在全局变量$php_errormsg中执行操作符:``反引号符,PHP试着将反向单引号中的命令当作服务器端的命令执行,表达式的值是执行结果。$out=`ls -la`;或$out=`dir C:`'类型操作符:instanceofgettype函数:string gettype(mixed var),返回变量的类型字符串bool settype(mixed var,string type),设置变量的类型。PHP提供了一些特定类型的测试函数,且都以变量为参数,返回true or false:is_array,is_double,is_float,is_real,is_long,is_int,is_integer,is_string,is_bool,is_object,is_resource,is_null,is_scalar(标量检查,即整数、布尔值、字符串、浮点数),is_numeric(数字或数字字符串),is_callable(函数名检查)测试变量状态:isset(可包含多个参数,都被赋值返回true),使用unset销毁变量,empty函数检查一个变量是否存在且值是否为非空或非0.转换数据类型的函数:int intval(mixed var[,int base])float floatval(mixed var)string strval(mixed var)

数据存储与检索

使用fopen打开文件:
fp=fopen("DOCUMENT_ROOT/../orders/order.txt”,”w”);
第一个参数为文件名,DOCUMENTROOT=_SERVER[‘DOCUMENT_ROOT’]
第二个参数为打开方式:
w,w+为只写,r为只读,r+为读写,x、x+为谨慎写,文件已存在则不会打开,a、a+为追加,b是二进制,t为文本。
第三个参数为可选,如果要在include_path中搜索文件则为true,此时无需提供路径
第四个参数可选,支持协议如http://
fopen可通过ftp与http或其他协议打开文件,在php.ini中可通过关闭allow_url_fopen指令禁用这个功能
如果使用的文件名以ftp://开始,则fopen函数建立一个连接到指定服务器的被动模式
如果使用的文件名以http://开始,fopen建立一个到指定服务器的http连接,如http://www.example.com/

写文件使用fwrite或fputs:
fwrite(fp,outputstring);
int file_put_contents(string $filename,string data,[,int flag, resource context])

fwrite:
int fwrite(resource handle,string s[,int length])

读取文件:
string fgetss(resource fp,intlength,string[allowabletags);arrayfgetcsv(resourcefp,intlength[,stringdelimiter[,stringenclosure]]);enclosureintreadfile(stringfilename,[int use_include_path,[,resource context]])
fpassthru(fp)filearray=file(string filename)stringfilegetcontents(stinrgfilename)
读取一个字符用fgetc($fp)

while(!feof($fp)){    $char=fgetc($fp);    if(!feof($fp))        echo($char=="\n"?"<br />" :$char);    {}

string fread(resource $fp,int length)读取任意长度

file_exists检查文件是否存在,以文件名为参
file_size查看文件大小,以文件名为参

nl2br函数将\n转换为<br/>

删除文件:unlink(函数名)
在文件中定位:
rewind复位
ftell以字节单位报告指针当前位置
int fseek(resource fp,intoffset[,intwhence])fpwhenceoffsetwhenceSEEKSETSEEKCURSEEKENDboolflock(resourcefp,int operation[,int &wouldblock]);
如果文件锁将导致当前进程阻塞,可选的第三个参数为true
operation有:
LOCK_SH-读锁定
LOCK_EX-写锁定
LOCK_UN-释放锁
LOCK_NB-防止在请求锁时发生阻塞

0 0