PHP程序总结

日期:2012-3-7 类型:动态网站技术

以下是个的对PHP程序的总结,希望对初学者有所帮助!

1:PHP中常量的定义与使用

Define(“name”,”value”); >> 定义一个常量名称为name,值为value.
$变量名=”value”>> 定义一个变量。
Settype(要转移的变量,类型(包括integer整形,string字符型)
PHP中常用的预定义变量:$_GET,$_POST , $_FILES
Array,定义一个数组。
$art=array(0,1,2);
Foreach($art as $key=>$value){
Each $value;
}
?>
常用sql语句:select top 3 * from shang where id=cid
              Insert into shang (id,cid,shangname) value(5,3,”shang”)
              update shang set id=3 where cid=3
              Delete from shang where id=3
              Truncate shang
              Drop table shang
常用条件字段:between 1 and 10
              In,not in,like.or
常用计算:count(*),max(*),min(*),avg(*),sum(*)
             
2:PHP中运算符。

-$a         取反             $a 的相反数
$a+$b      加               $a和$b相加
$a-$b       减               $a和$b相减
$a*$b       乘               $a和 $b相乘
$a/$b       除               $a和$b相除
$a%$b      取余             $a和$b相除取余数

3:PHP中流程控制语句。
If,if else, if elseif  elseif
Switch case
While
Break: 停止循环    continue:跳出本次循环。
Do while
For(i=0 ;i<100 ;i++){ }

4:PHP中常用函数。

Abs(数字) >>取绝对值;floor(5.2121)>>取整; pi() >>取圆周率; min ();>>取最小值;max()>>取最大值;
rand(最大值,最小值) >> 随机函数;
strlen() >> 取字符串长度;
echo >> 字符串的输出;
print()>>输出字符串有返回值;
substr(字符串,开始,长度);截取字符串;
split(分割符,字符串);explode(字符串,分割符);strtok (字符串,分割符);
strip_tags()>> 去除字符串中的特殊符号;
htmlspecialchars();>>把HTML代码保留下来。
Strcmp()>>比较大小;
Strtolower()>>大写转换为小写;
Stroupper()>>小写转换为大写;
md5 ()>>MD5加密;
nl2br()>>把回车转换为
;
str_replace(“a”,”b”,”abcd”) >> 输出bbcd;           php中方式
replace(“abcd”,”a”,”b”) >> 输出bbcd;              asp的方式
array();>> 新建一个数组;
count()>>计算元素中的个数;
array_unique()>>移去数组中重复的值;
array_count_values()>>计算数组中重复的次数;
trim()>>截去字符串中的空格;
strpos() 函数返回字符串在另一个字符串中第一次出现的位置

5:PHP中文件应用。

File_exists()>>判断文件是否存在;
文件的一些属性:filesize()>>获取文件的大小
                Filetype()>>获取文件的类型
                Filemtime>>获取文件的修改时间
                Fileatime>>获取文件的访问时间
                Fileperms>>获取文件的权限
Fopen(文件名,打开方式) r w   fgetc()读取单个字符  fgets()读取文件的内容  file()整个文件的内容。Fgetss()读取文件的内容去除HTML标记。Unlink()删除文件;
fwrite
Mkdir(文件夹名,打开方式); rmdir()删除目录;opendir()打开指定目录,readdir()记取指定目录;closedir()关闭指定目录;

6:MYSQL数据库的操作。

Mysql_connect(主机名,用户名,用户密码) or die(“不能连接服务器.mysql_error());
Mysql_fetch_object():根据从结果中取得的行生成的数组。

7:MYSQL数据库的操作语句。
Create database if not exists>> 建立数据库;如果不存在,就不会出错;
Drop database >>删除数据库;
.frm>>   .myd>>数据文件    .myi:索引文件;
Create table>>建立表;
Drop table> >>删除表;
Create table teacher
(
Id int(5) auto increment not null primary key,
Name char(10) not null,
Address varchar(50) default’武汉大学’,
Year date
);
Alter table t1 rename t2;>>表名T1改为T2;
修改表结构:为了改变列a ,从integer 改为tinyint not null
并且改变列B,从char(10) 改为char(20) 同时重命名它,从b改为c
Alter table t2 modify a tinyint not null,change b c char(20);
增加一个新timestamp 列,名为D;
Alter table t2 add c int auto increment ,add index (c);
删除列C;
Alter table t2 drop column c;


Int imagecreate(intx,int y)>>建一个长为X 宽为Y的长方形;
Int imagecolorallocate($shang ,255,255,255) 填充颜色;
Int imagefill($shang,0,0,black)从哪个位置填充颜色;
Int imagestring($shang ,3,10,10,”shang”,black) 在坐标(10,10)写入字号为3,颜色为黑色的字符串shang
Int imagepng($shang,”image.png”)  
Int images李讷($shang,x,y,x1,y1,black


Move_uploaded_file :上传函数;
$_FILES[‘userfile’][‘name’]:客户端机器文件的原名称。
$_FILES[‘userfile’][‘type’]:文件的MIME类型,需要浏览器提供该信息的支持。
$_FILES[‘userfile’][‘size’]:已上传文件的大小,单位为字节。
$_FILES[‘userfile’][‘tmp_name’]:文件被上传后在服务端储存的临时文件名。
$_FILES[‘userfile’][‘error’]:和该文件相关的错误代码。
Set_time_limit(秒):超时;

Parse_url()是将URL解析成有固定键值的名称的数组。
$_SERVER(“REQUEST__URL”)取得域名后面完整的地址。

 


正则表达式

preg_match以perl语言为基础。
Preg_match(mode,string subject,array matches)------正则模块,要正则的内容,正则的结果。
ereg以POSIX基础。
ereg (mode,string subject,array matches)------正则模块,要正则的内容,正则的结果。
正则表达式中包括的元素
1:原子(普通字符:a-z A-Z 0-9,原子表,转义字符)
2:元字符(有特殊功能的字符)
3:模式修正符(系统内置部分字符i,m,s,u….)

原子
1:a-z A-Z 0-9
2:(abc)(skd)----单个字符的匹配
3:[abcs][^abd]----abcs中每个元素的匹配  除过abd其它每个元素的匹配。
4:转义字符
\d 包含所有数字[0-9]
\D 除所胡数字外[^0-9]
\w 包含所有字母[a-z A-Z 0-9]
\W 包含所有字母[^a-z A-Z 0-9]
\s 包含空白区域如回车,换行,分页等[\f \n \r ]

 


元字符
* 匹配前一个内容的0次1次或多次
. 匹配任何内容的0次1次或多次,但不包含回车换行
+ 匹配前一个内容的1次或多次
?匹配前一个内容的0次或1次
| 选择的或
^ 匹配字符串首部内容
$ 匹配字符串尾部内容
\b 匹配单词边界,边界可以是空格或者特殊符合
\B 匹配除带单词边界意外内容
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n}匹配前一个内容的重复次数M次到N次
()合并整体匹配,并放入内存,可使用\1,\2来提取

正则表达式测试软件 RegexTester

 

 

 

运算顺序:()圆括号因为是内存处理所以最高
          * ?+ {} 重复匹配内容其次
          ^ $ \b 边界处理第三
          | 条件处理第四
          最后按照运算顺序计算匹配
修正符
           i 正则内容在匹配时候不区分大小写(默认是区分的)
           m 在匹配首内容或者尾内容时候采用多行识别匹配
           s 将转义回车取消是为单行匹配如. 匹配的时候
           x忽略正则中的空白   去除空格。
           A 强制从头开始匹配
           D 强制$匹配尾部无任何内容\n
           U 禁止贪婪匹配 只跟踪到最近一个匹配符并结束,常用在采集程序上的正则表达式
匹配功能: preg_match_all (正则表达式,正则内容,正则数组)
替换功能: preg_replace和str_replace功能一样,但前者功能全面。
           Preg_replace(替换内容,替换成什么,替换数组)
分割功能: preg_split()

    $str=”标题:(title)
作者:(author)
内容(conn)”;
    $mode=array(“/(title)/”,”/(author)/”,”/(conn}/”);
    $met=array(“php中文网”,”asp网站建设”,”深圳网站建设”);
echo preg_replace($mode,$met,$str)

    $str=”222222a2222222222A2222222B2222222VC”;
    $mode=”/[a-z]/ie”;
echo preg_replace($mode,”md5(\\1)”,$str,2);  2表示替换两次


    $str=”aaaaa,ssssssss.ddddddd”;
    $mode=”/[, .]/”;
    $arr=preg_split($mode,$str,3);    3表示切割三次
    Print_r($arr);

伪静态书写
RewriteEngine on
RewriteRule ^/turui/news_(.*).html$   /turui/news_show.php?id=$1
防注入
1:Sql注入
2:register_globals=off 设置为关闭状态
    不要省略小引号和单引号 select * from `shang` where `id`=’2’
    数据库命名技巧
class classname{
public $var;
function shang(){
echo "welcome to my company";
}
}
$zheng=new classname();
$zheng->shang();
$zheng->var="
"."shangzhengzheng";
echo $zheng->var;
?>


class mypc{
public $name;
public $content;
function __construct($name,$content){
$this->name=$name;
$this->content=$content;
}
function video(){
return $this->name.$this->content."看电影";
}
function game(){
return $this->video()."玩游戏";
}
function intelnet(){
return "上网";
}
function __destruct(){
echo "
---------".$this->video();
}
}
$pc1=new mypc('商蒸蒸','牛银玲');
$pc2=new mypc('商蒸蒸','牛银玲');
echo $pc1->video()."
";
echo $pc2->game();
?>


class mypc{
private $name;
function __construct($name){
return $this->name=$name;
}
function __get($name){
return $this->name."................";
}
function __set($n,$v){
if ($v=="1000"){
$this->$n=$v;
}
}
function power(){
return $this->name."电脑开机启动中,请勿关机...";
}
function ok(){
return $this->power()."开机成功";
}
}
$pc=new mypc('我的电脑');
$pc->name="1000";
echo $pc->name;
?>

class shang{
function dayin(){
return "son print"."
";
}
}

class zheng extends shang{
function dayin2(){
return shang::dayin()."bon print";
}
}

$p=new zheng();
echo $p->dayin2();
?>

abstract class zheng1{
abstract function first();
abstract function second();
abstract function third();
}
class zheng extends zheng1{
function first(){
echo "first";
}
function second(){
echo "second";
}
function third(){
echo "third";
}
}

$p=new zheng();
$p->second();

//抽象类只能被继承才能显示。
?>
//final类--类不能被继承 方法--方法不能被重载
 class mypc{
public $name="my home";
function diannao(){
echo $this->name."qidong";
}
}
class myvideo extends mypc{
function diannao(){
echo mypc::diannao()."kaiba";
}
}

$shang=new myvideo();
$shang->shipin();

?>

 


function  addcontent($content){
$content=addslashes(htmlspecialchars($content));
return $content;
}

function  showcontent($content){
$content=htmlspecialchars_decode(stripslashes($content));
return $content;
}

Smarty写法:
$query=$db->query("SELECT * FROM `config`");
while($row=$db->fetch_array($query)){
$sm_config[$row[name]]=$row[values];
}
$smarty->assign("sm_config",$sm_config);

$query=$db->query("SELECT * FROM `mainclass` where `classid`=57  order by `order` asc");
while($row_aboutnav=$db->fetch_array($query)){
$sm_aboutnav[]=array("name"=>$row_aboutnav[name],"id"=>$row_aboutnav[id]);
}
$smarty->assign("sm_aboutnav",$sm_aboutnav);

$smarty->display("product_list.html");


{section name=s loop=$shu}
{$shu[s].name}
{sectionelse}
Ddddd
{/section}

{section name=n loop=$sm_news}

  • {$sm_news[n].title|truncate:49}
    {/section}

    Foreach 一般用在一维数组上,section 一般用在多维数组上。
    {foreach from=$name item=id}
    Id:{$id}

    {/foreach}
    {foreach key=j item=v from=$name}
    {$j}:{$v}

    {/foreach}
    {include file=”index.php”}
    {include file=”index.php” title=”main”}
    {if $name==’ok’}
    {else}
    {/if}
    {literal}{/literal}
    {strip}{/strip}去掉代码中空格和换行


    $smarty->cache_dir=”/caches/”;
    $smarty->caching=ture;
    $smarty->cache_liftetime=60;

    $smarty->display(‘cache.tpl’,cache_id);建立缓存ID
    $smarty->clear_all_cache();清除所有缓存
    $smarty->clear_cache(‘index.htm’);清除文件缓存
    $smarty->clear_cache(‘index.htm’,cache_id);清除文件中ID的缓存

    局部缓存
    (1){insert name=”get_time”}
    Function insert_get_time(){
    Return date(“Y-m-d H:m:s”)
    }
    Mod_rewirte 规则写法
    RewriteEngine on
    RewriteCond %{HTTP_HOST}!^www.php100.com [NC]
    RewriteRule ^/(.*) http://www.php100.com/ [L]

    R 强制外部重定向
    F 禁用URL,返回403HTTP状态码。
    L 表明当前规则是最后一条规则,停止分析以后规则的重写。

    如果规则则正常处理,以下修正符无效
    NC 不区分大小写

    strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
    strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
    strpbrk() 该函数返回指定字符第一次出现的位置开始的剩余部分。

  • 深圳市蒸蒸科技有限公司

    地址:深圳市龙华新区龙观西路2号宝龙大厦915室

    手机:15013488376

    联系人:商先生

    公司网址:http://www.jixingweb.com

    
    响应式网站
    兼容手机端、电脑端、微信端
    网站转静态开发
    打开速度快、安全性高、利于SEO优化
    HTML5+CSS3最新技术
    采用最新网站排版技术,动态效果更逼真
    仿站2500元起
    高仿网站、价格便宜、功能齐全