php综合web开发(1)

来源:互联网 发布:淘宝刷单违规 编辑:程序博客网 时间:2024/06/07 08:03
本博客介绍了进行php综合web开发需要的技术与方法。

php详解

php程序负责传回一个适合在web服务器上现实的规整文件,只输出html格式。

<?php ...?>

注释有://与//
字符串又两种:‘与“,’总是直接输出,除了\’与\无其他转义字符,而”会带入变量并理解转义字符。
php还提供了使用<<

$string=<<<_END........._END;

但要注意html排版会删除空白,变量会由其值替代。

常量的使用:

define("ROOT_LOCATION","/usr/local/www/");$dir=ROOT_LOCATION;

php有很多预定义的常量,前后都有两个_ _以示区别。

__LINE__文件的当前行号__FILE__文件的完整路径与文件名__DIR__相当于dirname(__FILE__),没有尾部斜杠,除非是根目录__FUNCTION__函数名__CLASS__类名__METHOD__类方法名__NAMESPACE__命名空间名print方法含有单一参数并返回一个值(始终为1)的类似函数的结构,echo则是一个PHP的语言结构,print可以作为复杂表达式的一部分echo不可以,如:$a?print "true":print "false";默认情况下,函数中创建的变量是局部变量,在函数外创建的变量只能由非函数的代码访问,使用global定义全局变量,在程序的任何一行代码均可使用,static声明静态变量,只能赋予预定义的值:static $int=0;//允许static $int=1+2;//不允许static $int=sqrt(144);//不允许预定义的变量称为超级局部变量,被构建成了相关数组:$GLOBAL:当前定义在脚本全局范围内的全部变量,变量名是数组键$_SERVER:标题、路径与脚本位置等的信息,网络服务器在这个数组中创建实体,不保证每个网络服务器提供这些内容的部分或全部。$_GET:由http的get方法传递给当前脚本的变量$_POST:由http的post方法传递给当前脚本的变量$_FILES:由http的post方法上传到当前脚本的项目$_COOKIE:当前脚本可用的会话变量$_SESSION:由默认的$_GET,$_POST,$_COOKIE传给浏览器的信息内容$_NEW:由环境方法传给当前脚本的变量比如查看访问当前页面的页面的信息:
$came_from=$_SERVER['HTTP_REFERER'];

出于安全角度,在使用超级全局变量前要对它们进行清洁处理,有一种方法是运用php的htmlentities函数,将所有字符转换为html实体:

$came_form=htmlentities($_SERVER['HTTP_REFERER']);

一个基本的Boolean值可以使TRUE或FALSE,是php的预定义常量,也可使用小写,也是预定义常量,小写的更稳定。
TRUE显示值为1,FALSE不显示值。php中FALSE被定义为NULL

跳出多重循环可使用break 数字 来指定跳出多少重循环。

函数是执行特定功能的一系列语句的集合。
字符串函数:

strrev('string');//次序倒置str_repeat("string",2);//重复字符串strtoupper("string");//转换为大写//strtolower//ucfirst将字符串首字母变为大写//

函数定义:

function name([parameter,...]){    //statement}

函数名大小写不敏感
包含请求文件:

<?phpinclude "library.php";...?><?phpinclude_once "library.php";...?>//还可使用require与require_once

使用function_exists(“函数名”)检查是否存在预定义函数或自定义函数
类名是区分大小写的
print_r函数按照常规阅读的格式输出变量信息。

访问对象的语法形如$object->property或$object->method(),属性与方法名前无$符号对象的赋值是引用赋值,值赋值使用clone $object的形式构造方法是__construct,析构方法是__destruct在方法中使用$this访问当前对象静态方法使用static定义,使用类名::方法名调用。属性可以提供默认值,但必须是常量,不可以是函数或表达式的计算结果。可在类内使用const定义常量,使用self::name使用常量或静态成员extends继承,parent访问访问父类方法:parent::name();访问当前类中的方法:self::name();为了防止子类方法覆盖父类方法可使用final关键字。

数组:

<?php$paper[]="1";$paper[]="2";$paper[]="3";$paper[]="4";?>

数组指针自动移动。
遍历数组可使用foreach … as循环:

<?php$paper=array("1","2","3");foreach($paper as $item){echo $item;}$paper2=array("1"=>"one","2"=>"two");foreach($paper as $item=>$value){echo $item.$value;}?>

使用is_array查看是否是数组,使用count函数查看数组的顶层元素数量,可选择使用第二个参数,为0限制统计顶层数组元素个数,为1递归统计子数组元素个数
sort函数在原数组上直接排序,成功返回true,否则false,shuffle则是随机排序,与sort相同
explode接受一个由单字符或字符串分割的几个独立项构成的字符串,并将这些项置于一个数组中

php实用技术:
printf函数可以通过在字符串中键入特殊的格式化字符控制文本的输出格式
sprintf函数可以将结果传递给变量
日期时间函数——
php使用了标准的unix时间戳,就是从1970.1.1的0点至今所经历的秒数,要获取当前时间戳,可使用时间函数——time(),可使用mktime为指定时间创建时间戳:

mktime(0,0,0,1,1,2000);//从左往右依次是小时、分钟、秒、月、天、年

显示日期使用date函数:

date($format,$timestamp);date("l F jS,Y - g:ia",time());

php中有很多日期常量,在date函数中使用可以以特定格式输出日期:
DATE_RSS, DATE_ATOM,DATE_COOKIE,DATE_W3C
检查是否是有效日期使用checkdate():

$year=2018;$month=9;$day=18;checkdate($month,$day,$year);

文件处理:
检查文件是否存在:

file_exists("test.txt");创建文件:$fh=fopen("test.txt","w") or die("Failed to create file);fwrite($fh,$text) or die("Could not write to file");fclose($fh);

读取文件:
读一行——fgets($fh);
复制文件:
copy(“text1.txt”,”text2.txt”);//从前者复制到后者
移动文件:
rename(“text1.txt”,”text2.txt”);//从前者移动到后者,也可重命名目录
删除文件:
unlink(“text.txt”);
文件枷锁:
flock函数,flock在nfs或其他在线的文件系统上不能工作
file_get_contents(“text.txt”);可以读取整个文件,还可以从internet取回文件
上传文件:
选择一种特殊的编码格式如multipart/form-data,upload.php:

<?phpecho <<<END<html><head><title>php form upload</title></head><body><form method='post' action ='upload.php' enctype='multipart/form-data'>select file:<input type='file' name='filename' size='10'><input type='submit' value='upload'></form>END;if($_FILES){$name=$_FILE['filename']['name'];switch($_FILE['filename']['type']){case 'image/jpeg':$ext='jpg';break;case 'image/gif':$ext='gif';break;case 'image/png':$ext='png';break;default:$ext='';}if($ext){move_uploaded_file($_FILE['filename']['tmp_name'],$name);echo "uploaded image '$name'<br /><img src='$name'>";}}echo "</body> </html>";?>
文件上传时,有5个值存储在$_FILES数组中:$_FILES['file']['name']上传文件名$_FILES['file']['type']文件类型$_FILES['file']['size']文件大小(字节数)$_FILES['file']['tmp_name']存储于服务器上的临时文件名$_FILES['file']['error']上传文件导致的错误代码

系统调用:

<?php$cmd="dir";//$cmd="ls";exec(escapeshellcmd($cmd),$output,$status);if($status)echo “failed";else{echo "<pre>";foreach ($output as $line) echo htmlspecialchars("$line\n");echo "</pre>";?>

html5的文档规范:

0 0
原创粉丝点击