ZhaNan Blog

关联数组使用时的陷阱

关联数组在使用时有如下几个陷阱,值得我们注意:

$arr = array('fruit'=>'apple','veggit'=>'carrot');
echo $arr[fruit];//这里PHP会判断fruit是否定义,无则自动转成字符串'fruit',输出apple
define('fruit','veggit');
echo $arr[fruit];//很明显,fruit是常量,输出carrot
echo "$arr[fruit]";//注:输出apple,自动转字符串
echo "$arr['fruit']";//报错
echo "{$arr['fruit']}";//输出apple
echo "{$arr[fruit]}";//输出carrot


阅读全文

mysql的日期格式转换函数

开发过程中有需要将数据库存储的日期格式提取成需要的格式,比如:2016-07-14 16:40:30 只需要提取日期部分,则需要mysql的日期处理函数。

下面罗列一下常用的日期函数:

日期转时间戳:

UNIX_TIMESTAMP(日期);【UNIX_TIMESTAMP('2016-07-14 16:46:30')】

时间戳转日期:

FROM_UNIXTIME(时间戳);【FROM_UNIXTIME('1468486033')】

日期转自定义格式:

DATE_FORMAT('日期','%Y年%m月%d日');【将日期转成2016年07月14日格式】

直接获取日期:

DATE('2016-07-14 16:46:30');【2016-07-14】


阅读全文

PHP字符串过滤相关函数

看到曹鹏大师的一篇很久的文章,吸收了一些经验。下面罗列一点与处理字符串相关的PHP函数。

addslashes();//增加反斜线
intval();//整形过滤
strip_tags();//去除html和php等标签
htmlspecialchars();,htmlentities();//html特殊字符过滤
trim();//过滤空字符
nl2br();//换行转<br>或<br/>
mysql_real_escape_string();//数据查询语句过滤
escapeshellarg();,escapeshellcmd();//shell命令过滤

文章中还提到,处理用户表单时应该先过滤超全局变量$_GET、$_POST等存储到一个变量中,而不要在PHP脚本处理过程中随用随取变量的值,这些值都不是可靠的。


阅读全文

YII之session处理

使用YII的session组件:$session = yiii::$app->session;

然后打开session:$session->open();

检查是否打开:$session->isActive;

session的增删改查:

增/改:$session->set('user_id','1')或者$session['user_id'] = 1

删:$session->remove('user_id')或unset($session['user_id'])

查:$session->get('user_id')或$session['user_id']

阅读全文

yii之请求处理与响应处理

yii的请求处理是通过请求组件(yii::$app->request)和响应组件(yii::$app->response)实现的。

请求组件的简单使用:

$request = yii::$app->request;
$request->isGet;//判断是否GET请求
$request->get('id',1);//获取id的值,默认1
$request->getUserIP();//获取访问者IP地址

响应组件的简单使用:

$response = yii::$app->response;
$response->statusCode = 404;//响应404错误代码
$response->setStatusCode(404);
$response->headers->add('pragma','no-cache');//增加一个Header头
$response->headers->set('pragma','max-age:5');//修改header头
$response->headers->remove('pragma');//移除header头项
$this->redirect('http://www.baidu.com',302);//header头跳转

文件下载:

$response = Yii::$app->response;
$response->sendFile('abc.jpg');//相对web目录的文件
$response->headers->add('content-disposition','attachment;filename=abc.jpg');//同上,相对web目录


阅读全文