get在url通过?参数=值&参数=值…这样的方式明文传输,传送的数据量较小,不能大于2KB。get安全性非常低,但是执行效率却比Post方法好。
post传送的数据量较大,post安全性较高通过提交header头传输,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
Session存在服务器端,安全性高,但是禁止cookie后无法使用使用,除非使用url中?PHPSESSID = 值(在php端使用session_id()获得)
Cookie存在客户端,用户可以修改,不安全
事务是数据库的一种数据结构类型
执行环境:当执行一堆数据库语句操作(多为增删改操作)并且所有语句都能执行才将sql语句都执行,否则返回到数据库未做修改时的状态(称为回滚)
使用环境:一般使用在对金额的数据库操作时使用
$b = Array_reverse(Explode(“,”,“$a,$b”));
$a = $b[0];
$b = $b[1];
Echo date(‘Y-n-d H:i:s’,strtotime(‘-1 day’))
svn git
Strrev
header('content-type:text/html;charset=utf-8');
function getrev($str,$encoding='utf-8'){
$length = mb_strlen($str);
$result = '';
for ($i=$length-1; $i >= 0 ; $i--) {
$result .= mb_substr($str,$i,1,$encoding);
}
return $result;
}
$str = 'OK的撒发生大幅';
echo getrev($str);
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。
PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
MVC是一种设计模式中M是model模型,业务逻辑层
V是视图view 主要负责用户交互层
C是控制器 是连接视图和模型的桥梁
Mvc优点:
低耦合性
高重用性和可使用行
较低的生命周期成本
快速的部署
可维护性
是php的一个扩展,主要用来做图像处理如:图片合并,验证码,图片截取等
Int 8字节整型,-231~231-1之间,无符号为0~232
Char 定长字符串
Varchar 变长字符串
Datatime 日期格式
Text 文本格式,可输入较长的文本
区别:vachar[n] 存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零
Char[n] 存储大小为 n 个字节的数据,无论输入数据字节大小
echo() 不是一个函数(它是一个语言结构),没有返回值,可以传递多个参数
print() 实际上不是一个函数(它是一个语言结构), 有返回值总是1
Print_r()是函数 print_r($exp,[bool]) 如果给出的是 string、integer或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。
object与数组类似。print_r() 将把数组的指针移到最后边。
使用 reset() 可让指针回到开始处。第二个参数设为 TRUE,print_r() 将不打印结果,而是返回其输出的字符串。
模板技术:提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要
常用的模板引擎有:Smarty
可以分为缓存和数据库索引的方式解决
缓存:将访问压力较大的页面或者数据库做内存或者文件缓存,减少数据库压力
数据库可以实现读写分离,写和读服务器可以根据具体情况1;N来进行配比
数据库可以把常用的搜索和关键条件的字段建立复合窄索引,提高数据库查询效率
减少子查询,通过慢查询和explain语句优化对应的sql语句
通过memcache调动服务器的空闲内存做文件或者数据库缓存
负载均衡,动静分离等
Include遇到错误程序会继续往下执行,多使用在判断中的包含,require遇到错误会立即终止程序,一般指包含一次
Include_once,require_once
mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_fetch_row — 从结果集中取得一行作为枚举数组
1,允许部分数据冗余,避免JOIN操作,以提高查询效率
2,使用主从数据库分离,读写分离
3,explain每一个sql语句,写高效的SQL语句,看看有没有写低效的SQL语句,建立复合窄索引,减少子查询
4,所得皆必须,只从数据库取必需的数据,
5,必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
Mb_substr()
或者
function gbsubstr($string,$start,$len){
if(len($string)>$len){
$newlen = $start+$len;
for($i=$start;$i< newlen;$i++){
if(ord(substr($string,$i,1))>0xa0){
$str.=substr($string,$i,2);
}else{
$str.=substr($string,$i,1);
}
}
return $str;
}else{
return $string;
}
}
$_SERVER[‘SERVER_ADDR’] 当前运行脚本所在的服务器的 IP 地址
$_SERVER[‘REMOTE_ADDR’] 浏览当前页面的用户的 IP 地址
传值:是把实参的值赋值给形参,那么对形参的修改,不会影响实参的值
传引用:真正的以地址的方式传递参数
传递以后,形参和实参都是同一个对象,只是他们名字不同而已
对形参的修改将影响实参的值
传入函数中的变量执行后需要让该变量的值等于传入形参的改变的值时传引用
Preg_match(‘/\s*\w+@(\w+\.){1,}\w+\s*/’,$content,$match)
scrip_path = basename(__file__); print_r($script_path);
confirm()
alert()
prompt()
onfocus()
Function Suffix($url){
$str = pathinfo($url,PATHINFO_EXTENSION);
Return substr($str,0,strpos($str,’?’));
}
也可以使用parse_url实现
如 $a = ‘/a/b/c/d/e.php’;
$b = ‘/a/b/12/34/c.php’;
计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/c/d将()添上
';
}else{
echo $path.'是一个文件夹
';
showDirAll($path);
}
}
}
}
}
showDirAll('D:/Apache/www');
29.简述论坛中无限分类的实现原理。
Id name pid path这几个字段
最外层的主类 pid为0
其他的分支pid则为0-n-n….的格式
而path为0-n-n-….-n最后一个为本身的id号
然后根据path的排序就可以实现无限分类