PHP学习笔记

HTML分离
<? . . . ?>
<?php . . . ?>
<script language="php"> . . . </script>
<% . . . %>

注释
/* C,C 风格多行注释 */
// C 风格单行注释
# Unix风格单行注释

PHP.ini 里的 display_errors  =  On 才可以显示错误位置

习惯使用echo  或者 print 打印

一个语句以  ; (分号结束)


四种标量类型:
boolean(布尔型) 理解为真假型
integer(整型)
float(浮点型,也作“double”) 理解为小数型
string(字符串)
两种复合类型:
array(数组)
object(对象)

$bo=TRUE;  $bo=FALSE;
$bo=array(1,2,3,4);  $bo=array(“A”=>1 , “B”=>2);

PHP中使用array来创建一个数组:

array( key=>value ,  key=>value …… )
$arr = array ("id"=>2,"title"=>3);

用方括号的语法来修改数组  : $arr[] = value

$arr = array("a" => "视频", "b"=>"教程", "c" => "六");

$arr['a']    = "PHP100";
$arr['c']    = "第六讲";

使用 count 函数统计数组条数  count ( $arr );

使用 is_array函数判断数组 is_array ( $arr );

另一种创建数组的函数explode explode ( "key" ,  value);

遍历数组很多种方法,可以使用 For循环,while循环,最巧妙的
一种遍历数组foreach给我们带来了跟多方便
foreach ( $arr as $key => $value  ){
       ……
}

PHP 函数
func(val1,val2,…);

使用 Function 来自定义一个函数

Function func_name($val){
……
}
一个自定义函数中的变量是局部的,函数外不生效
使用global全局变量的时候,在函数外才可使用变量
为了放置全局变量的混乱可以使用 unset($var)删除一个变量


1)使用return 函数返回函数内部值

(2)自定义函数值的接收和选择性接收

(3)function_exists() 判断函数是否存在

(4)引用返回值 使用&符号


php.ini 加载mysql组件:
extension=php_mysql.dll  前的; 去掉
extension_dir = " "  路径是否正确


mysql_connect: 开启 MySQL 链接
mysql_select_db: 打开一个数据库

@   和  or die 隐藏错误 和 条件显示

mysql_connect("主机", "用户名", "密码")
mysql_select_db("打开数据库",连接标识符);


mysql_query (SQL语句 ,连接标识符);

说明:mysql_query用来根据连接标识符向该数据库服务器的当前数据库发送查询,
如果连接标识符默认,则默认为是上一次打开的连接。

返回值:成功后返回一个结果标识符,失败时返回false。


$sql = "SELECT * FROM  test";
$result = @ mysql_query($sql, $conn) or die(mysql_error());

格式:mysql_fetch_row(result);

说明:mysql_fetch_row用来查询结果的一行保存至数组,该数组下标从0开始,每一个数组元素对应
一个域。通过循环,可以将查询结果全部获得。

格式:mysql_fetch_array(result);

说明:mysql_fetch_array和mysql_fetch_row功能基本相同,只不过它除了可以用从0开始的偏移量作
索引,还可以用域名作索引。

值返回下一行的所有域值,并将其保存至一个数组中,没有行时返回false。
mysql_query("set names 'GBK'"); 解决中文乱码

mysql_num_rows  用于计算查询结果中所得行的数目
mysql_insert_id 传回最后一次使用 INSERT 指令的 ID。
mysql_tablename 取得数据库名称
mysql_error   返回错误信息
mysql_close 关闭 MySQL 链接


require()  与  require_once()
    
通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require
所指定引入的文件,如果出现错误是致命的。

include()  与  include_once()
    
可以放在 PHP 程序的任何一个位置,PHP 程序在执行到时,才会先读入
include 所指定引入的文件,如果出现错误将会提示。

require('con.php') ;
include('con.php') ;


PHP5在默认的情况下接收参数是需要使用
$_GET['value'];
$_POST['value'];


str_replace( 被替换的值,替换的值,被替换的内容);


htmlspecialchars(所要格式化对象,定义单双引号,编码)

md5( 加密对象 )

COOKIE 的使用和登陆
setcookie("name", "value", 3600, "/dir", ".domains.com", true);

parse_url()
$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");
print_r($ua);
结果:


Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)


$_FILES['myFile']['name']   客户端文件的原名称。
$_FILES['myFile']['type']   文件的 MIME 类型,例如"image/gif"。
$_FILES['myFile']['size']   已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name']   储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error']   该文件上传相关的错误代码。

image/jpg
image/jpeg
image/png
image/pjpeg
image/gif
image/bmp
image/x-png
application/x-zip-compressed

错误代码
0; 文件上传成功。
1; 超过了文件大小php.ini中。
2;   超过了文件大小
      MAX_FILE_SIZE 选项指定的值。
3; 文件只有部分被上传。
4; 没有文件被上传。
5; 上传文件大小为0。

上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置和文件名);


判断上传MIME类型的文件函数
move_uploaded_file(MIME);


正则表达式函数 ereg() eregi()
ereg(正则表达式, 内容, 返回的数组);
若省略参数返回的数组,找到则返回值为 True 否则 返回 False
ereg() 有区分大小写,eregi() 无区分大小写。
if (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+",$email)) {
   echo "您的 E-Mail 通过初步检查";
}


(1)  fopen 打开文件函数
fopen (路径和文件名,打开方式); R-只读 W-写入 A-读写


fread (打开的文件,结束位置);

filesize 读取文件大小,字节为计量单位
filesize (路径和文件名);

fwrite (路径和文件名,写入的内容);


fclose 关闭打开的文件
fclose (路径和文件名);


unlink() 删除文件函数    unlink(路径和文件名)

rmdir() 删除目录函数   rmdir(路径和目录名)


类的成员属性和成员方法
class MyPc{
public $name;
var $price;
function vod() {
  return "PHP100视频教程";
   }
}


$pc1 = new MyPc();
$pc1->name;  使用 -> 访问对象内容

为了让大家养成良好的习惯和今后对PHP6的适应,建议使用 public 而不是  var

$this关键字是用来访问当前对象中的对象属性和对象方法的系统变量
$this仅能在当前对象中使用


初始化对象  __construct()

1、原PHP4中我们需要建立一个与类名称相同的一个对象方法
class MyPc{

   function MyPC ( ) {

        初始化操作
        
       }
}
2、在PHP5中继承了PHP4但为了更好的针对面向对象开发有了固定函数
class MyPc{

   function __construct() {

        初始化操作
        
       }
}

能够在对象释放时自动被调用的方法被称为析构函数
规则:后进先出
析构函数 __destruct()
class MyPc {
  ……

    function __destruct() {
        ……
      }
}

public 表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或子类或父类中可以访问;
private表示私有的,只有本类内部可以使用;

__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作
__set($Name,$Value)
__get() 取得当前类中封装过属性或方法并转换成共有属性


因为属于向下继承的原理,基类不能使用派生类里内容,这个时
基类的一些方法不能完成我们的一些派生类的功能,我们就可以
进行方法重载避免了,新建方法带来的混乱。

方法重载我们也可以理解方法覆盖,在派生类里使用与基类方法
重名的方法名称执行重载

抽象类的几个特点:
1、不能被实例化,只能被继承
2、继承的派生类当中要把所以抽象方法重载才能实例化


重载时我们需要调用原始基类内容,再增加新内容,我们可以使用

抽象关键字 :abstract
一个类中至少有一个方法是抽象的,我们称之为抽象类。
所以如果定义抽象类首先定义抽象方法。
1、类中至少有一个抽象方法
2、抽象方法不允许有{ }
3、抽象方法前面必须要加abstract


关键字 :final
用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承,
当用来定义方法的时候该方法将不能被重载

关键字 : self
用来用类访问当前类中的内容的关键字,类似与$this关键字,但$this是需要
类实例化以后才可以使用,self 可以直接访问当前类中的内部成员

self :: 类内部成员(属性或者方法

用来定义类的静态属性或方法,可以在类未被实例化时使用,静态属性单独占
用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。


class class1{

   static $name;
   static function fun1(){
    ……
   }
   }
静态方法内部禁止出现非静态内容

类内部访问静态成员
类名称 : : 静态成员    
self  : : 静态成员

类外部访问静态成员
类名称 :: 静态成员

用来定义类中的常量,类似PHP外部定义常量的关键字define();  Const只能
修饰类当中的成员属性!


1、建议大写常量

2、常量不使用$符号

class class1{

   const NAME;
   
   function fun1(){
    ……
   }
}

接口
1、类中全部为抽象方法
2、抽象方法前不用加abstract
3、接口抽象方法属性为public
4、成员属性必须为常量

接口的介绍与创建
interface demo {

    const  NAME="名字";

    function Fun1();
    function Fun2();

}

1、普通类引用接口例子:

  class mypc implements demo , demo2 , demo3{
       ……
    }


2、抽象类引用接口例子:

   abstract class mypc implements demo , demo2 , demo3{
      ……
    }


3、继承父类引用接口并存例子:

  class mypc extends root implements demo , demo2 , demo3{
       ……
    }

4、接口与接口继承:

   interface demo3 extends demo{
      ……
    }

PHP 一个类型运算符。instanceof 用来测定一个给定的对象是否来自指定的对象类。


方法名 __tostring()

class My{

function __tostring ( ){

  echo "我所要显示的内容";
 
   }
}

$p = new My();

echo $p;


方法名 __call($funname,$arr_value)
调用一些不存在的对象方法的异常处理,使程序继续正常运行


3、克隆对象的应用
方法名 __clone() 
通过克隆的方式我们可以在内存中生成两个一样的对象或升级原对象

class My{

function __clone( ){

  echo "克隆时自动调用的函数";
 
   }
}


$a=new My()

$b=$a;   内存中只有一个对象

$a=new My()

$b= clone $a;  内存中会有两个对象

方法名 __autoload()
快速取得对象名称并自动载入进当前页面
function __autoload($class_n){

  include($class_n.".php");
 
   }

  $p=new Mypc();
  $d=new demo();
 
将会被自动调用,执行如下
include("mypc.php");
include("demo.php");

Smarty的变量操作符
capitalize [首字母大写]
count_characters [计算字符数]
cat [连接字符串]
count_paragraphs [计算段落数]
count_sentences [计算句数]
count_words [计算词数]
date_format [时间格式]
default [默认]
escape [转码]
indent[缩进]
lower[小写 ]
nl2br[换行符替换成<br />]
regex_replace[正则替换]
replace[替换]
spacify[插空]
string_format[字符串格式化]
strip[去除(多余空格)]
strip_tags[去除html标签]
truncate[截取]
upper[大写]
wordwrap[行宽约束]


foreach 数组的处理
=======无键值数组
{foreach from=$name item=id}
id: {$id}<br>
{/foreach}

=======无键值数组
{foreach key=j item=v from=$name }
{$j}: {$v}<br>
{/foreach}


{include file="header.htm"}

{include file="D:\www\head.htm"}

{include file='head.htm' title="Main Menu"}

{if $name=='ok'}

{else}

{/if}


literal 数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用
于显示有可能包含大括号等字符信息的 javascript 脚本

Cookie
echo $MyCookie;
echo $CookieArray[0];
echo $_COOKIE["MyCookie"];
echo $HTTP_COOKIE_VARS["MyCookie"];


要删除一个已经存在的Cookie,有两个办法:

1、SetCookie("Cookie", "");
2、SetCookie("Cookie", "value" , time()-1 / time() );



session_start();                    //初始化session.需在文件头部

$_SESSION[name]=value;  //配置Seeeion

echo $_SESSION[name];    //使用session

isset($_SESSION[name]);   // 判断

unset($_SESSION[name]);   //删除

session_destroy();             //消耗所有session


1 、rand 随机函数
rand ( [int min, int max] )

2、dechex 十进制转换为十六进制

dechex ( 十进制数 )


imageline 画线函数

imagesetpixel 画点函数
imagettftext 带字体的写入函数

i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
S 将转义回车取消是为单行匹配如. 匹配的时候
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部无任何内容 \n
U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,
    常用在采集程序上的正则表达式


preg_match_all 全部匹配函数
preg_match_all ( string pattern, string subject, array matches [, int flags] )

preg_replace 正则替换函数
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
























你可能感兴趣的:(sql,PHP,mysql,正则表达式,Scheme)