ThinkPHP
言会咸
典型80后程序猿,太追求完美,为了理想而奋斗
展开
-
ThinkPHP框架项目开发专题--自动验证
在WEB项目的开发中,项目的任何模块都会有数据添加的功能--比如用户注册、新闻添加、商品管理等,那么我们就会用到表单来传输数据,而添加数据时无论是前台用户还是后台管理员都避免不了填写无效数据或者错误数据,那么表单数据的验证就是我们在做项目中必不可少的。所以如果大家参与或者独立开发过WEB项目的话一定会发现在添加数据时大量的数据验证--比如用户名是否存在、验证码是否正确、密码是否填写一致、年龄是否是数字等问题,那么就会用到大量的数据库查找、正则表达式的编写等问题困扰大家。 在ThinkPHP中,内置了数据对象转载 2011-04-21 22:32:00 · 2878 阅读 · 0 评论 -
PHP开发API接口(注册、登录、查询用户资料)
一、服务端部分<?phprequire 'conn.php';header('Content-Type:text/html;charset=utf-8');$action = $_GET['action'];switch ($action) { //注册会员 case"adduserinfo"; $username = lib_replace_en转载 2013-07-28 10:58:55 · 18183 阅读 · 1 评论 -
解决PHP json_encode() 中文自动Unicode编码的函数
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式,但是转换后的中文会变成Unicode编码。<?php$arr = array ( 'Name'=>'希亚', 'Age'=>20 );转载 2013-11-22 13:40:50 · 9383 阅读 · 2 评论 -
PHP一组可逆加密解密算法
对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。对于需要还原的信息,则需要采用可逆的加密解密算法。下面一组PHP函数是实现此加密解密的方法:加密算法如下:function encrypt($data, $key){ $key = md5($key); $x = 0; $len = strle转载 2014-01-28 23:39:33 · 8224 阅读 · 0 评论 -
PHP发送带附件邮件的实现代码
php发送邮件,可以发送带附件邮件。1.emailclass.php文件<? class CMailFile {var $subject; var $addr_to; var $text_body; var $text_encoded; var $mime_headers; var $mime_boundary = "--==================_8转载 2014-01-28 23:34:01 · 1206 阅读 · 0 评论 -
PHP百度面试题:版本号排序
$a = "111.101.202.1.0";$b = "111.101.202.1.1";$va = explode('.', $a);$vb = explode('.', $b);//比较函数function comparefun($va,$vb){ $a = array_shift($va); $b = array_shift($vb); if($a>$b)转载 2014-02-25 13:40:02 · 2568 阅读 · 1 评论 -
PHP获取文件的大小
这个类可以判断文件的大小,即使大于2GB,它可以使用不同的方法来确定一个大的文件。<?php//http://www.codepearl.com/** * ---------------------------------------------------------------------- * FileSizeHelper * -------------------------转载 2014-02-26 23:04:24 · 3837 阅读 · 0 评论 -
PHP读取CURL模拟登录时生成Cookie文件
在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码$login_url = 'XXX';$post_fields['email'] = 'XXXX';$post_fields['password'] = 'XXXX';$post_fields['origURL'] = 'XXX';$post_fields['domain'] = 'xxx.com';/原创 2014-03-01 22:17:02 · 13240 阅读 · 1 评论 -
PHP的exec()函数无返回值排查方法
在安全imagemagic时 需要用到 exec很多服务器上安装失败exec()执行外部命令失败,但没有任何错误信息。 exec执行某命令在命令行下没有问题,但是在php中就出错。这个问题99.99%与权限有关,但是exec执行的命令不会返回错误。一个技巧就是使用管道命令,假设你的exec调用如下:exec('convert a.jpg b.jpg', $output, $retu转载 2014-03-11 23:38:42 · 24648 阅读 · 1 评论 -
PHP自动重命名文件算法
PHP重命名文件名我们在实际开发过程中经常会使用到,比如用户上传文件或是一些缓存文件自动生成的功能我们都需要使用到自动重命名功能。但一般我们在制作上传文件时命名方式都是使用取系统当前时间加上随时数的方式在进行,这种方法固然可行但有时候并不能满足客户要需求。有些客户就要求我们的文件名 命名方式要像windows系统一样自动流水编号,比如上传一个名字为“新建文本文档”当再有其它人上传一个文件名为“新建转载 2014-04-09 16:05:41 · 1906 阅读 · 0 评论 -
[PHP]如何使用Mobile_Detect来判断访问网站的设备:安卓,平板,电脑
Mobile_Detect 是一个轻量级的开源移动设备(手机)检测的 PHP Class,它使用 User-Agent 中的字符串,并结合 HTTP Header,来检测移动设备环境。这个设备检测的 PHP 类库最强大的地方是,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。官方主页:http://mob转载 2014-05-23 16:07:20 · 7921 阅读 · 0 评论 -
Thinkphp中数据按分类嵌套循环
做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的。thinkphp官网给出的文档为:转载 2014-07-25 13:41:04 · 1974 阅读 · 0 评论 -
PHP生成唯一的激活码
<?php/** * 生成永远唯一的激活码 * @return string */function create_guid($namespace = null) { static $guid = ''; $uid = uniqid ( "", true ); $data = $namespace; $data .= $_SERVER ['REQUEST_TIME']; //转载 2014-06-14 13:03:21 · 12688 阅读 · 0 评论 -
PHP使用Apache中的ab测试网站的压力性能
打开Apache服务器的安装路径(我用的是 WampServer),在bin目录中有一个ab.exe的可执行程序,它就是要介绍的压力测试工具。 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。 d:(回车/进入D盘) cd wamp\转载 2014-06-14 13:08:01 · 6770 阅读 · 1 评论 -
PHP生成随机密码,并计算所用时间
<?phpfunction create_password($pw_length = 8){ $randpwd = ''; for ($i = 0; $i < $pw_length; $i++) { $randpwd .= chr(mt_rand(33, 126)); } return $randpwd;}// 调用该函数,传递长度参数$pw_length = 6echo转载 2014-06-14 13:04:57 · 1174 阅读 · 0 评论 -
关于ThinkPHP下表单令牌错误的相关解决办法
今天在用ThinkPHP做程序的时候,以前用create创建数据的时候,出现了错误提示“表单令牌错误”,然后各种百度各种谷歌,得到的网上解答给出了以下的建议1、清缓存: 用了,我把所有的Cache下的文件都删掉了,并将~app.php和~runtime.php两个文件同时都删掉了,但是没有效果。2、将TOKEN_ON参数设置为FALSE: 试过了,但是也不行,虽然不提示表单令牌错误了,但是转载 2015-12-20 16:49:24 · 1164 阅读 · 0 评论 -
ThinkPHP Where 条件中常用表达式示例
Where 条件表达式格式为:$map['字段名'] = array('表达式', '操作条件');其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:ThinkPHP运算符 与 SQL运算符 对照表TP运算符SQL运算符例子实际查询条件eq=$map['id原创 2017-01-25 00:14:58 · 2669 阅读 · 0 评论 -
使用Curl进行抓取远程内容时url中文编码问题
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。下面是详细解释:string urlencode( string str)返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都转载 2013-08-03 22:45:53 · 3078 阅读 · 0 评论 -
PHP执行程序进度条demo程序 于2013.03.26 10.30.00更新
<?phpsession_start();$zs=21;//设置任务总数if(!isset($_SESSION['num']))$_SESSION['num']=$zs;//赋予session变量值$jd=$_SESSION['num']--;//进度值echo $jd;//显示进度值echo "";echo 100-round($jd/$zs*100)."%";//显示完成进度百原创 2013-03-22 07:38:10 · 5065 阅读 · 1 评论 -
PHP[多维数组转字符串]和{多维数组转一维数组}
/*** @method 多维数组转字符串* @param type $array* @return type $srting* @author yanhuixian*/function arrayToString($arr) {if (is_array($arr)){return implode(',', array_map('arrayToString', $arr));}转载 2013-01-30 00:35:22 · 11192 阅读 · 0 评论 -
ThinkPHP框架中快捷键M和D的区别
D()和M()方法的区别:D和M的区别主要在于M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现而D方法必须有创建模型类。我们可以用下面两种方法去创建一个数据表的映射对象第一种:原创 2011-08-08 19:19:26 · 1024 阅读 · 0 评论 -
Thinkphp内置截取字符串函数
thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便。调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用。比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写:{$vo.title转载 2011-08-07 15:16:20 · 19235 阅读 · 1 评论 -
ThinkPHP的CURD方法及查询方法一览
所谓CURD。即对数据库操作的四个基本操作(CURD):C:create(创建)、U:update(更新)、R:read(读取)和D:detele(删除)。在ThinkPHP中,并不是一定以这几个名字的方法,这里列出常见的:select,find,findAll,save,c转载 2011-08-08 18:19:12 · 2381 阅读 · 0 评论 -
Thinkphp中volist标签中mod控制一定记录的换行BUG
BUG描述:thinkphp 2.0 版本Mod属性还用于控制一定记录的换行,例如:volist name="list"id="vo"mod="5">{$vo.name}eq name="mod"value="4">eq>volist>转载 2011-08-09 23:30:06 · 3265 阅读 · 3 评论 -
ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
去掉 URL 中的 index.phpThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好。但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SE转载 2011-08-14 15:13:17 · 15912 阅读 · 0 评论 -
ThinkPHP自定义函数解决模板标签加减运算
实际项目中,我们经常需要标签变量加减运算的操作。但是,在ThinkPHP中,并不支持模板变量直接运算的操作。幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决:ThinkPHP模板自定义函数语法如下:格式:{:function(…)} (参考官方帮助文档:原创 2011-08-18 21:41:44 · 3543 阅读 · 0 评论 -
Thinkphp模板标签if和eq的区别和比较
在TP模板语言中。if和eq都可以用于变量的比较。总结以下几点:1.两个变量的比较:<if condition=”$item.group_id eq $one.group_id”><eq name=”item.group_id” value=”$o原创 2011-09-28 14:34:55 · 27742 阅读 · 7 评论 -
ThinkPHP水印功能,修复PNG透明水印增加JPEG图片质量可调整
TP自带有图片类,有给图片加水印的功能。这里完善了:1,png水印透明2,加水印后质量调整(只限于JPG格式)代码如下:红色为原系统的绿色为修改过的/**+———————————————————-* 为图片添加水印+———————————————————-* @static public+———————————————————-* @param转载 2011-11-26 00:39:29 · 5113 阅读 · 6 评论 -
ThinkPHP中的过滤函数[可以对对象,数组,字符串进行递归过滤]
ThinkPHP中的过滤函数[可以对对象,数组,字符串进行递归过滤]function inputFilter($content){ if(is_string($content) ) { return Input::getVar($content); } elseif(is_array($content)){ foreach ( $conten原创 2012-02-19 17:51:47 · 4540 阅读 · 2 评论 -
Thinkphp2.2 config.inc.php常用配置
CHECK_FILE_CASE -- windows环境下面的严格检查大小写。 /* 项目设定 */ 'APP_DEBUG' => false, // 是否开启调试模式 'APP_DOMAIN_DEPLOY' => false, // 是否使用独立域名部署项目 'APP_PLUGIN_ON' => false, //原创 2012-07-17 00:32:04 · 1590 阅读 · 0 评论 -
ThinkPHP V2.2 说明文档没有说明的那些事!!!
ThinkPHP V2.2 说明文档没有说明的那些事!!!以下是总结一下说明文档没有提及和详细说明的内容:(日后不断更新)1. 在配置文件中设置了APP_DEBUG为true,进入debug模式的时候,页面默认是不会显示trace信息信息的。解决方法:‘SHOW_PAGE_TRACE’=>true 加上这个就可以了。2.action 内的success 方法转载 2012-07-17 00:35:05 · 2361 阅读 · 0 评论 -
关于thinkphp入库出现两次反斜线转义和thinkphp数据库类的转义
这种情况是在 magic_quotes_gpc 开启的情况下发生的。原因是thinkphp在入库的时候没有判断 magic_quotes_gpc 是否开启,不管三七二十一地进行了转义处理。解决办法是在入口文件增加如下代码则可:if (!get_magic_quotes_gpc()) { function addslashes_deep($value) { $v转载 2012-08-12 22:06:11 · 8269 阅读 · 0 评论 -
PHP关于如何解决表单POST传参数时,自动加转义字符的问题
目前我写了个程序,由表单输入mysql语句,然后提交给PHP程序,由PHP程序做相应的查询并返回结果,可是在使用时我发现如果在表单中输入有特殊字符(如'' "" \等)时,PHP会自动在它们的前面加上转义字符 "\",但是一旦它加上以后,我没有办法再用这条语句做sql查询了,请问怎么样能不让它加这个字符呢?谢谢!例子如下:我在表单中输入的是:select * from device_inf原创 2012-08-12 22:11:27 · 9618 阅读 · 0 评论 -
在PHP中转义正则表达式字符
在 PHP 中,实现转义正则表达式字符的函数是: preg_quote 函数。语法如下:String preg_quote(string str [, string delimiter])Str 是用来进行字符转义的正则表达式, delimiter 是其他需要转义的字符。在 PHP 中可以使用 preg_quote 函数转义一些特殊字符。例如:<?php$str = pr原创 2012-08-12 23:03:18 · 2447 阅读 · 0 评论 -
PHP+Mysql多关键字,多字段 生成SQL语句的函数
先看实例:$keyword="1 2 3";echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //函数生成,没有LIMIT,没有ORDER BY生成:SELECT * FROM `enter_gongyin_pic` WHERE `a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '转载 2012-08-13 22:40:44 · 4689 阅读 · 0 评论 -
Thinkphp将二维数组变为标签适用的一维数组
方法一:$projectList=arr1tag($projectList,array('','请选择'),'project_name');//其中$list为传值过来的二维数组,$default为默认值,$k为指定的表字段function arr1tag($list,$default='',$k=''){ $tmp=''; if(array($list)){ if(array($d转载 2013-01-30 00:43:41 · 8174 阅读 · 0 评论 -
ThinkPHP数据表下划线使用方法
具体方法如下:$Model=D("ProductClass"); ProductClassModel.class.php $Model=M("Product_class");更多精彩博文请到言会咸的博客网址:http://blog.csdn.net/aoyoo111原创 2017-06-23 22:15:26 · 1679 阅读 · 2 评论