随笔分类 - php
php
摘要:ThinkPHP函数详解:M方法
http://www.thinkphp.cn/simple/functions_m.html
M方法用于实例化一个基础模型类,和D方法的区别在于:
1、不需要自定义模型类,减少IO加载,性能较好;
2、实例化后只能调用基础模型类(默认是Model类)中的方法;
3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息;
D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。
阅读全文
摘要:ThinkPHP CURD方法盘点:where方法
查询最常用但也是最复杂的where方法,where方法也属于模型类的连贯操作方法之一,主要用于查询和操作条件的设置。
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。
where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。
阅读全文
摘要:Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?
先上两种实现方式的实例:
$querys["house_type_image"] = array('NEQ','NULL'); //判断字段不为空
//$querys["house_type_image"] = array('exp','is not null');//其中的exp表示MYSQL的表达式查询,支持各种MYSQL语句的添加
表达式 含义
EQ 等于(=)
NEQ 不等于()
GT 大于()
EGT 大于等于(=)
LT 小于()
ELT 小于等于(=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
EXP 表达式查询,支持SQL语法
阅读全文
摘要:ThinkPHP内置日志记录
默认的话记录的日志级别是ERR,也可以指定日志级别:
\Think\Log::record('测试日志信息,这是警告级别','WARN');
采用record方法记录的日志信息不是实时保存的,如果需要实时记录的话,可以采用write方法,例如:
\Think\Log::write('测试日志信息,这是警告级别,并且实时写入','WARN');
write方法写入日志的时候 不受配置的允许日志级别影响,可以实时写入任意级别的日志信息。
阅读全文
摘要:各种文件上传类型设置,实战示例
*.ogg application/ogg, audio/ogg Ogg Vorbis
*.zip aplication/zip Compressed Archive
阅读全文
摘要:处理内容有&特殊字符thinkphp返回xml无法解析的问题
// xml 转义特殊字符 如&以标记结束
不能直接把data进行for循环,否则里面的数组对象就变成一个对象字符了
// xml 转义特殊字符 如&'" 标记结束
$xml .= (is_array($val) || is_object($val)) ? data_to_xml($val, $item, $id) : '';
必须是最终文本值才能加上这个
测试xml特殊字符&&&#@Rd?#dfasf*()@!~-=+_''"":;,./
阅读全文
摘要:在thinkphp里面执行原生的sql语句
怎样在thinkphp里面执行原生的sql语句?
$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);
只是需要new一个空的模型继承Model中的方法。
注意query是查功能,execute是增删改功能
阅读全文
摘要:php array_multisort对数据库结果多个字段进行排序.
array_multisort($is_activity,SORT_DESC,$start_time, SORT_DESC, $goods);
阅读全文
摘要:thinkphp相关
1.thinkphp调试sql方法:echo M("table_name")->getLastSql();
2. 条件查询设置多个条件参数的写法:
(1). $result = M("table_name")->where(array("cloumns_name"=>$cloumns_value,"cloumns2_name"=>$cloumns_value2))->find();
阅读全文
摘要:redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐
1、Redis 官方网站下载: http://redis.io/download
第三方下载redis的windows应用程序,支持32位和64位,根据实际情况下载
下载地址: https://github.com/dmajkic/redis/downloads
2、将相应的程序copy到你所需要的目录中,在这里我使用的64位,放到E:\redis目录
3、启动redis服务端:打开一个cmd窗口,先切换到redis所放目录(E:\redis),运行 redis-server.exe redis.conf
注意redis.conf为配置文件,主要配置了redis所使用的端口等信息(如果不写则默认redis.conf)
阅读全文
摘要:WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php
漏洞描述:
没有限制xml中的参数数量,导致攻击者可以远程注入恶意xml,对目标服务器直接造成拒绝服务攻击denial of service(dos)
修复方案:
1、删除根目录下的xmlrpc.php(推荐);
2、Wordpress升级到最新版本。
阅读全文
摘要:php new stdClass array 实例代码
$obj = new stdClass();
$obj->rs = array();
$obj->count = 0;
//$obj = array ("rs"=>array(),"count"=>0);
阅读全文
摘要:php 写内容到文件,把日志写到log文件";
}
$content = "第二次写入的内容";
if($f = file_put_contents($file, $content,FILE_APPEND)){// 这个函数支持版本(PHP 5)
echo "写入成功。";
}
注意:log.txt 这个文件web服务器
阅读全文
摘要:当你的页面有大量数据时,建议使用set_time_limit()来控制运行时间,默认是30s,所以需要你将执行时间加长点。
如 set_time_limit(800) ,其中将秒数设为0 ,表示持续运行到程序结束。如果要停止运行只能重启php-fpm(文章后面附有重启命令)
如:set_time_limit(0)表示持续运行到程序结束,但这个函数有些在window环境下有些人设置不成功,Linux下也可能会出现问题的,做好在逻辑代码加上try catch避免异常。
注意:这个函数的运行需要你关闭安全模式,在php.ini中将safe_mode = Off 安全模式设置为Off
阅读全文
摘要:php array 根据value获取key,in_array()判断是否在数组内实例
$isin = in_array("法律",$categoryids);
if($isin){
echo "in====".$isin."";
echo array_search('法律',$categoryids);
}else{
echo "out====".$isin;
}
阅读全文
摘要:PHP empty、isset、isnull的区别
empty如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,”"、0、”0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
isset如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。
is_null检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】
阅读全文
摘要:php抛出异常:throw new Exception("xxxxxx!");
阅读全文
摘要:php判断数组元素是否存在某个字符串的方法:
方法一:采用in_array(value,array,type)
type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
$arr = array('可以','如何','方法','知道','沒有','不要');
//in_array(value,array,type)
$isin = in_array("如何2",$arr);
if($isin){
echo "in====".$isin;
}else{
echo "out====".$isin;
}
阅读全文
摘要:php 5.4中php-fpm 的重启、终止操作命令:
/etc/init.d/php-fpm restart
查看php-fpm进程数:
ps aux | grep -c php-fpm
阅读全文
摘要:php中实现后台执行的方法:
ignore_user_abort(true); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
后台运行的后面还要,set_time_limit(0); 除非在服务器上关闭这个程序,否则下面的代码将永远执行下去止到完成为止。
如果程序运行不超时,在没有执行结束前,程序不会自动结束的.
阅读全文