define("D",值) 定义常量
defined(“D”) 测试常量是否存在
require_once() 载入文件一次 不重复
empty() 是否为空
in_array(str,arr) 查询str是否存在与数组中
addslashes() 非法字符加 \’ \” \\
set_time_limit(120) 设置页面执行最大时间 0不限制
intval() 转换成10进制
trim() 去掉连续空格
chop() 处理串尾部的空白
join=implode("!",数组) 用什么连接数组
md5()
unset()
ucfirst() 字符串第一个大写
str_replace(a,b,str)
strtr(str,a,b) 在str中 a替换b
strstr(str,a) 在STR中显示A后面的第一个字符串
strpos(str,a,x) 在str中找到a 第几次出现的呢x
substr_count(str,a) a在str中出现的次数
str_repeat("-", 30); 重复多次
substr(str,a,b) 截取 0开始
split(“!”,str,x) 切开explode(str,”!”)
strtok(str,”!”) 切开
sleep(10) 等待10秒
function_exists() 判断是否支持 某某函数
PHP_OS 服务器系统
PHP_VERSION PHP版本
phpversion(); PHP版本
version_compare("4.0.4", PHP_VERSION, "<") 比较版本
__FILE__ 文件地址 D:\PHPnow\htdocs\17173\2.php
$_SERVER['PHP_SELF'] 返回绝对路径的地址 /17173/2.php
$_SERVER['SERVER_NAME'] 服务器地址 IP
$_SERVER['DOCUMENT_ROOT'] D:/PHPnow/htdocs
$_SERVER['QUERY_STRING'] ?后面的信息
$_SERVER['REQUEST_METHOD'] 提交方式
$_SERVER['REMOTE_ADDR'] 用户IP
key() 返回当前数组的键名
$a=array(1,2,3,4,5,6,7,8);
$b=array("a"=>1,"b"=>2,"c"=>3);
$c=array(0=>array(1,2,3,4,5,6),1=>array(1,2,3,4,5,6));
for ($i=0;$i<count($arr);$i++){
$cc[]=$arr[$i]; PHP中 $变量[] 每次赋值 自动增加下标
}
Foreach(数组 as 变量){
变量;
}
Foreach(数组 as 对象=>变量){
对象(名称) 变量(值);
}
在 Windows 中,斜线(/)和反斜线(\)都可以用作路径分隔符。在其它环境下是斜线(/)。
define('DP',dirname(strtr(__FILE__,'\\','/'))."/");
返回D:/PHPnow/htdocs/17173/ 只会返回当页的目录 是引用页的路径
当前目录的
思路
1.管理页统一路径xxx.php?do=link&act=add
管理目录或者其他 采用动态引动的效果
DP=当前目录
Include_one(DP.”admin\”.$get.”.php”);
根据$get值调用某一页 在根据其他参数处理数据
2.分页
当前PAGE页
Isset($_GET[‘ID’])?intval($_GET[‘ID’]):1;
$sql=”Select id from ‘table’”;
$R=Mysql_query($sql);
$N=mysql_num_rows($R);
总页数 PC=ceil(总数/每页数量)
当页 P=(PAGE-1)* 每页数量 LIMIT P,每页数量
需要包含的文件 不可以直接显示的文件 可以在文件头查看是否有此常量
代码1 && 代码2 代码1如果 返回假值 则执行代码2 !function_exists(‘xx’) && exit(‘ddd’);
安装文件的创建
1第一步 版权 直接下一步
2 输入 数据库信息
3 接受数据库信息并写入config 配置文件 并连接 创建数据库等 如失败 实现失败信息并后退
4 输入管理员信息
5 接受信息 包含config配置文件 连接数据库 然后插入管理员记录。
简洁版的 就是第一部 输入 所有信息 第二部验证 并写入文件
注意查看是否有写入权限
实战
; 分号 我靠 我靠 我靠
date("Y年n月j日") 不带零的 2008 8 8
date("Y年m月d日") 带零的 2008 08 08
G:i:s H12小时制 11:01:01 带零的 小写不带零
ul 是·开头的
ol 是1 2 3 开头的
经常用的不变的变量 该成常量 如 数据库连接 数据库名字变量
NND 如何知道上一次查询的数据是否有值 Mysql_affected_rows(); mysql_num_rows($result);
echo <<<EOT
xxxxx //相匹配就行 中间可直接输出HTML代码
EOT;
<? !defined("S") && exit('..........................'); ?> 禁止访问非独立文件
不要用 过时的函数
变量不能滥用 至少用2次以上 或者为了方便阅读
Str_replace() 比 ereg_replace() 快很多
模版技术分为2种 推和拉 推就是主动替换变量 拉就是变量等待输出
date_default_timezone_set 设置时区
robots.txt 设置搜索引擎 不去查找
User-agent: *
Disallow: /admin/
类
Class ClassName{
Public xxx;
Pirveat xxx;
}
函数在类中可以使用
函数
function inject_check($sql_str)
{
return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); // 进行过滤
}
上传
PHP里的上传简直太简单了
在一个HTML网页新建一个 文件域 设置一个名字
接受页 只需要
$_FILES['filex']['name'] 文件名字
$_FILES['filex']['type'] 文件类型
$_FILES['filex']['size'] 文件大小
$_FILES['filex']['tmp_name'] 文件临时位置
$_FILES['filex']['error'] 错误代码
0; 没有错误发生,文件上传成功。
1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
3; 文件只有部分被上传。
4; 没有文件被上传。
只需要
copy($_FILES['filex']['tmp_name'],"目的/".$_FILES['filex']['name']);
echo "<script >parent.form2.pic.value='"."目的/".$_FILES['filex']['name']."'</script>";
require和include之间有两点重要的区别。首先,无论require的位置如何,制定文件都将包含到出现require的脚本中。例如,即使require放在计算结果为假的if语句中,依然会包含指定文件。
NND 我测试怎么就不包含呢?
POST 方式发送表单 xx.php?act=1 $_GET[act] 才有值 GET方式发送取不到值 (ASP)
NND
Smarty
{$变量}
{if xxx==xxx}
{else}
{/if}
{foreach form=$接受变量 item=变量} 循环
{$变量[字段]}
{/foreach}
{include file="down.htm"} 包含文件
require_once 'smarty/libs/Smarty.class.php'; //使用smarty类
$smarty = new Smarty(); //初始化类
$smarty->template_dir = "smarty/templates/templates"; //设置模板目录
$smarty->compile_dir = "smarty/templates/templates_c"; //设置编译目录
$smarty->config_dir = "smarty/templates/config"; //配置文件目录
$smarty->cache_dir = "smarty/templates/cache"; //设定缓存目录
$smarty->caching = false; //设置缓存
$smarty->left_delimiter = "{"; //设置左边界
$smarty->right_delimiter = "}"; //设置右边界
$smarty->assign('title',$row['title']);//替换
$smarty->display('foot.tpl.html'); //输出
{foreach from=$content item=con}
<a href=1.php?id={$con.id}>{$con.title}</a><font style="color:#999;"> 发表于 {$con.time} :</font>
作者:{$con.name}
{/foreach}
{section name=lx loop=$cp}
<a href="1.php?id=H{$cp[lx].id}H" target="_blank">H{$cp[lx].title}H</a>
{/section}
编码规范
首先文档结构
|――style 样式文件
|――images 图片
|――include 引入文件
|――config 参数
|――function 函数
|――index.php
适当的缩进 4个空格 vs. 制表符
适当的注释
变量
$S… 字符串
$i… 整型
search. 收索
show news 文章显示
class list
register reg 注册
settings set 设置
config 配置
edit 编辑
update 更新
link 连接
head top 头部
down filoor 低部
function fun 函数
install 安装
menu 菜单
manager manage admin 管理