review_php


pear是纯php角本的扩展库~~
pecl是extension的扩展库~~

short_open_tag = Off // <? ?>打开,默认的是<?php ?> & <script language="php"></script>
asp_tags = Off // 打开asp tag <% %>
3中注释方式:
/*****/ --c
//      --c++
#       --shell

php变量是弱类型的,只能以字母和下划线开始,不能用数字开始哟。
变量没有全局的,全是本地的。
函数中定义的只能在函数中用,函数外的可以用特殊数组$GLOBALS['NAME']访问。
$a='index';$$a = 'value'equals $index = 'value';
isset($v1,$v2,$v3) //isset可以判断任意数量的参数是否被声明。
unset //取消定义,释放内存。

$_GET[]

$_POST[]

$_COOKIE[]

$_ENV[] --环境变量

$_SERVER[]

<<<A

A;  //定义大段字符,结束必须顶格.

php5中,字符访问可以用中括号也可以用大括号,建议用大括号,以对数组区分。

foreach($arrs as &$arr){

// 可以直接处理数组

}

define('CONSTANTVALUE',$value); //定义常量。

$a=1; $b =& a;    //a & b 就指向同一个内存地址了,i guess, 永久的。。

===  //值要等,类型也要等。

include($_SERVER['DOCUMENT_ROOT']."/myscript.php");  //所谓的相对路径。

require与include不同的地方是:include的文件不存在也继续执行,require会停止滴。

同理 include_once / require_once.

eval("echo $a = 5;") //输出5,厉害吧。js里貌似也有eval,功能类似。

静态属性属于类而不属于实例,属于类共有的都可以定义成静态属性,又叫做存储在类里面的全局变量。

self:: //指向当前类

parent:: //指向父类

instanceof 替代 is_a() // if($obj instanceof 类名)

__CLASS__    //存储当前类名的常量

ini_set() // set php.ini中的值

session_name() // 改变默认的 session ID 在 cookie 中的名字 PHP_SESSID

session_start() //必须紧跟在所有用ini_set()函数设置session相关的参数后面

mysqli_connect_error() // 从最后一次失败的连接中获取错误信息

<?php
for($i =0;$i < 10000; $i ++){
	$str[] = '("tom","nan")';
}
$query = 'insert into test(name,sex) values '.implode(',',$str);


print_r($start = microtime());
echo '<br>';

$con = mysql_connect('localhost','root','root');
mysql_select_db('liftdna_db_new');
$result = mysql_query($query);

if($result){
	print_r($end = microtime());
	echo '<br>';
	print_r($end-$start);
}else{
	print_r(mysql_error());
}
mysql_close($con);

echo '<br>';
//mysqli
print_r($start = microtime());
echo '<br>';
$con = new mysqli('localhost','root','root','liftdna_db_new');

if($stmt = $con->prepare('insert into test(name,sex) values(?,?)')){
	
		$stmt->bind_param("ss",$name,$sex);
	for($j = 0; $j < 10000; $j ++){
		$name = 'jack';
		$sex = 'nv';
		$stmt->execute();
	}
	
	$stmt->close();

}
$con->close();

print_r($end = microtime());
echo '<br>';
print_r($end-$start);
?>

//OUTPUT

0.27481600 1313923740
0.52492100 1313923740
0.250105
0.52511400 1313923740
0.85092500 1313923750
0.325811

include/require  //包含的文件如果有错,返回不完整的文件,并继续执行

GPC // GET, POST, COOKIE

HTTP header发出之后,不能在试图修改。如果不用ob_start(),从html开始就输出了,header在此之前也输出了,再来改就出错。

output buffering 通过管道将所有输出添加到动态增加的缓存中,等脚本结束了再输出所有,包括header。但是会降低输出页面的速度。

session_id()  //查看当前对话在cookie中的session id


register_globals = Off // 当 register_globals 打开以后,各种变量都被注入代码,例如来自 HTML 表单的请求变量。再加上 PHP 在使用变量之前是无需进行初始化的,这就使得更容易写出不安全的代码。

声明变量的同时要定义变量,是必须的好习惯。

<?php
// 当用户合法的时候,赋值 $authorized = true
if (authenticated_user()) {
    $authorized = true;
}

// 由于并没有事先把 $authorized 初始化为 false,
// 当 register_globals 打开时,可能通过GET auth.php?authorized=1 来定义该变量值
// 所以任何人都可以绕过身份验证
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

magic_quotes_gpc = Off // Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically. 


global //

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
 }

Sum();
echo $b;
?>

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>

addslash() // addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符: O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \.


array explode ( string $separator , string $string [, int $limit ] )
string implode ( string $glue , array $pieces )
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
string chunk_split ( string $body [, int $chunklen [, string $end ]] )
mixed count_chars ( string $string [, int $mode ] )

int fprintf (resource$handle ,string$format [,mixed$args [,mixed$... ]] )

string htmlentities (string$string [,int$flags = ENT_COMPAT [,string$charset [,bool$double_encode = true ]]] )

string html_entity_decode (string$string [,int$quote_style = ENT_COMPAT [,string$charset = 'UTF-8' ]] )

string htmlspecialchars (string$string [,int$flags = ENT_COMPAT [,string$charset [,bool$double_encode = true ]]] )

string htmlspecialchars_decode (string$string [,int$quote_style = ENT_COMPAT ] )


1xx:信息响应类,表示接收到请求并且继续处理

2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求


http0.9/1.0 不支持连接复用,Http1.1支持。这个复用只是可以复用连接,不是说请求和响应也能保持住,别搞混了。


int readfile (string$filename [,bool$use_include_path [,resource$context ]] )

读入一个文件并写入到输出缓冲。

返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。

string basename (string$path [,string$suffix ] )

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

$path = "/home/httpd/html/index.php";
$file = basename($path);        // $file is set to "index.php"
$file = basename($path,".php"); // $file is set to "index"

string dirname (string$path )

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"

mixedpathinfo (string$path [, int$options ] )

pathinfo() 返回一个关联数组包含有path 的信息。包括以下的数组单元:dirnamebasenameextension

可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAMEPATHINFO_BASENAMEPATHINFO_EXTENSION。默认是返回全部的单元。如果不是要求取得所有单元,则本函数返回字符串。

$path_parts = pathinfo("/www/htdocs/index.html");
echo $path_parts["dirname"] . "\n";
echo $path_parts["basename"] . "\n";
echo $path_parts["extension"] . "\n";
/www/htdocs
index.html
html

string realpath (string$path )

realpath 返回规范化的绝对路径名

Please be aware that this function does NOT always strip a trailing slash!:

LINUX (tested with PHP 5.2.11):
---
realpath('.')
: string = "/myhttpdfolder"
realpath('./')
: string = "/myhttpdfolder"
realpath('fileadmin')
: string = "/myhttpdfolder/fileadmin"
realpath('fileadmin/')
: string = "/myhttpdfolder/fileadmin"

WINDOWS (tested with PHP 5.2.5):
---
realpath('.')
: string = "C:\\myhttpdfolder"
realpath('./')
: string = "C:\\myhttpdfolder\\"
realpath('fileadmin')
: string = "C:\\myhttpdfolder\\fileadmin"
realpath('fileadmin/')
: string = "C:\\myhttpdfolder\\fileadmin\\"


array parse_url ( string$url )

本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。

本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

   $ar = parse_url('http://www.google.com.cn?x=1111&y=2222222');
   print_r($ar);  
Array( [scheme] => http [host] => www.google.com.cn [query] => x=1111&y=2222222)

voidparse_str (string$str [, array&$arr ] )

$var1 = 1;
parse_str('var1=one&var2=two');
// $var1 is now 'one'
parse_str('var1=one&var2=two',$arr);
//$arr = array('var1'=>one,'var2'=>two);


SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE revenues ADD FOREIGN KEY fk_revenues_tags1(tag_id) REFERENCES tags (id) ON DELETE NO ACTION ON UPDATE NO ACTION;



DROP TABLE IF EXISTS user_workgroups;
CREATE TABLE IF NOT EXISTS user_workgroups (
id INT(11) NOT NULL AUTO_INCREMENT ,
user_id INT(11) NULL DEFAULT NULL ,
workgroup_id INT(11) NULL DEFAULT NULL ,
role ENUM('ADMIN','DATA','QA') NULL DEFAULT NULL ,
PRIMARY KEY (id) ,
INDEX fk_user_workgroups_workgroups1 (workgroup_id ASC) ,
INDEX fk_user_workgroups_users1 (user_id ASC) ,
CONSTRAINT fk_user_workgroups_workgroups1
FOREIGN KEY (`workgroup_id` )
REFERENCES `workgroups` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_user_workgroups_users1
FOREIGN KEY (`user_id` )
REFERENCES `users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

mixed array_pop ( array&$array )

array_pop() 弹出并返回 array 数组的最后一个单元,并将数和依次调用fopen()fwrite() 以及fclose() 功能一样。 组array 的长度减一。如果array 为空(或者不是数组)将返回NULL。 

$HTTP_RAW_POST_DATA 原生POST数据

$HTTP_RAW_POST_DATA 包含 POST 提交的原始数据


file_put_contents 将一个字符串写入文件

int file_put_contents ( string$filename , string$data [, int$flags [, resource$context ]] )

和依次调用 fopen()fwrite() 以及fclose() 功能一样。 

但是如果有大量的读写,需要用单独的fopen,fwrite,fclose,不能用file_put_contents,代价太高,耗时。


数据库index-索引是表的目录,经常查询的字段可以建立索引。

数据库view-视图是表的一部分,用于给特定的用户显示特定的部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值