文档标签: php
define与defined的区别,php中define和defined的问题
其实这两个只是很像而已,以至很多人搞不清楚这两个在什么地方使用,包括我在内!
define是php里定义常量用的。
第一个参数是常量名,
第二个参数是常量的值,
第三个参数规定常量的名称是否对大小写敏感,若设置为 true,则对大小写不敏感。(默认是 false)
defined是用来判断某个常量是否存在,如:
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
它的意思是检测是否存IN_ECS这个常量,不存在的话停止运行脚本,并显示'Hacking attempt'(非法攻击)
大多情况下用来防止被引用文件的非法载入。
PHP define() 函数
定义和用法
define() 函数定义一个常量。
常量类似变量,不同之处在于:
在设定以后,常量的值无法更改
常量名不需要开...
今天在做查询的时候,根据需求要把数组中空的值去除掉
php数组函数的强大,于是想到了array_filter();
判断数组中元素是否为空的时候,一般用foreach,因为具体应用中多是要foreach,其实如果单纯的过滤php空数组的话,可以使用php函数array_filter() .
array array_filter ( array [, callback callback] )
array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
如果没有提供 callback 函数,array_filter() 将删除 array 中所有等值为 FALSE 的条目.这也就是过滤数组空白元素的精华所在.
[php]
$entry = array(
0 => '酷咔咔技术发布网',
1 => f...
有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚。这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些。
测试的类型如下:
[php]
<?php
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();
?>
[/php]
empty()
首先是empty的var_dump输出:
[php]
<?php
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));
?>
[/php]
从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。
isset()
再看看...
今天早上发现apache模块占用CPU-100%,无耐之下,重启服务器。
这时也就给我提出了一个问题!只是一个小型blog而已,为什么apache的CPU占用会达到100%呢!
带着这个疑问开始了我的centos apache优化之路。
在网上找了很多,大体思路是关闭不需要的mod
设置各种超时和反映时间!
照做了,速度这块是有一点的提升,但是可能明天或后天cpu又占到100%去了!
下面copy的一篇理论:
测试与提高性能
Apache服务器已经被设计得尽可能的快,即使你用一台配置不高的机器,用不着进行太复杂的设置,它的响应内容就足以塞满以前的各种窄带连接。但随网站内容日益复杂和带宽的增加,对Apache进行优化以取得更好的性能变得日益重要起来。
如果优化的结果仅仅是极小的性能提升那真是浪费时间。试想一下,你花了好几个小时甚至几天调整Apache的各种参数但结果仅是几个百分点的性能提升?因此,在优化前你做的第一步应该是测试你目前的服务器的性能水平以便决定如何优化你的服务器并衡量...
配置Apache+Php的时候出现You don't have permission to access/on this server.
马上打开apache的配置文件httpd.conf,逐行检查。在大约快一半的地方有以下这段代码:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
发现了吧。由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>...
今天在做一个发表心情的文本框的时候要添加表情图片!苦于难得一个一个去找,于是在开源中国社区上用php远程下载了它的表情图片!
罪过罪过!
以下是下远程下载文件的php代码,使用方法就是将此文件放到你要下载文件的储存目录就是了!
[sourcecode plain="language"]
<?php
for ($i = 0; $i < 135; $i++){
httpcopy("http://my.oschina.net/js/ke/plugins/emoticons/".$i.".gif");
}
function httpcopy($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!...
今天 在做一个头像的时候需要判断头像文件是否存在?
一:从数据库中读取看用户是否已经上传头像;
二:看上传过后的文件是否存在网站中。
判断文件要用php函数 file_exists
但这里的文件要加上在物理路径,哈,那么我们就要用php来获取网站的根目录在电脑上的位置
$_SERVER["DOCUMENT_ROOT"]
网站根目录
//根据ID获取用户头像
function getFamilirAvatar($id){
if (!$id){
return '参数错误';
die();
}
$account = D('Account');
$img = $account->where('ID='.$id)->field('IMG,SEX')->find();
$root = $_SERVER["DOCUMENT_ROOT"];
if ($img && $img['IMG']!==null){
$filename = '/Public/Uploads/Ho...
昨天在做一个绑定的功能,
php手机绑定与手机解绑,php邮箱绑定与解绑,
首先我们有两个需要存入的数据,一是判断手机是绑定了还是没有绑定,假设绑定我们设为 1 没有绑定设为 0.
邮箱也是同样的 绑定了设为 1 没有绑定设为 0.
默认这样 bind:{"phone":0,"email":0}.
因为绑定与解绑是需要用邮箱或手机短信来验证的,这里就需要发送一个验证码给用户,那么也就要在数据中存入一个验证码 vertify: {"phone":null,"email":null}
好数据库中设计好了,现在就来看看程序是怎么操作这两个字段的.
首先判断是否绑定,读取数据库信息,
这里我们就再次假设读出来绑定信息数据为 $bind,
将数据库中的字符串强制转换成数组格式:$bind = json_decode($bind, true);
用var_dump($bind),格式 就是数据格式了。哈哈!就可以判断是绑定了还是没有绑定,
如果在绑定那么我们就需要向用户发送一个6位的验证码,然...
在centos 下开机启动查看管理的命令是:chkconfig
应该其它linux系统也是一样吧!今天在试用阿里云主机!
主要是用来做php服务器,因为最近经常有公司问我服务这块的知识,所以在想一定要把这块学习好!就这样开始了我的linux之旅。
要本地安装的虚拟机,不像阿里云什么都给你弄好了!只要几步就要以完成配置!
我现在用的php环境是用的nginx以前是用的apache后来改了!
回来本文章的话题开机启动命令上来。
chkconfig --list 开机启动列表查看
输出 所有服务列表
如果列表中没有你要启动的服务
可以使用
#chkconfig --add 添加进去:
#chkconfig --add postfix
删除自然就是
#chkconfig --del 添加进去:
#chkconfig --del postfix
--list 后面可以加 服务名称 就只输出此服务的信息
例如
#chkconfig --l...
这两天在做centos下的php环境配置,当然用的nginx+php+mysql
这个比windows下麻烦多了,不好配啊!
本身用的是win7下的虚拟机,虚拟机又是liveCD盘,重启一次数据又没了!
在不断的总结中,还是有一点成就,学会用putty远程链接centos了
在其中有两点要做:
关闭防火墙: service iptables stop, 查看: chkconfig iptables off
打开sshd: service sshd start
做了以上两条应该就可以和centos链接了
顺便说一下centos 更新密码命令:passwd root...
最近在用tp做项目,做到上传这块发现有问题.
哦,环境用的是windows+php+nginx
在上传中写了最大上传文件大小,
import("ORG.NET.UploadFile");
$upload = new UploadFile();//实例化上传类
$upload->maxSize = 1024*100;//设置附件上传大小
但是一上传大一点的文件就会出现"413 Request Entity Too Large" 这样的错误提示信息;
最后只得google一下,更改
解决方法:打开nginx主配置文件nginx.conf,找到http{}段,添加
client_max_body_size 20m;
Centos下 vi /usr/local/nginx/conf/nginx.conf
重启NGINX
kill -HUP `cat /usr/local/nginx/nginx.pid `
恢复正常...
今天一同事问我求两个数组的相同的值,就是求两个数组的交集,于是乎就查了一下php官网上的一些数组函数,在这里也贴出来
...
PHP锁屏功能
很久以前都有人向我说要在系统中添加一个锁屏功能,作用是当有客户来时,你又不想让客户看见你后台的数据,同时也不退出系统!解锁功能要输入密码后才能进入,那么有人问如果我刷新页面那应该怎么办呢?呵呵,对的,我们在点击锁屏的时候已经将密码的seesion清空,如果你刷新当然页面会跳转到登录页面。如果输入密码错误则提示,同时还要设置一个最大尝试次数3次。3次过后将设为等待一段时间再来登录。
这里有两个页面
[html]
<!doctype html>
<html>
<head>
<meta charset=utf-8 />
<title>PHP锁屏功能</title>
<script language="javascript" type="text/javascript" src="http://192.168.77.200/statics/js/jquery.min.js"&...