文档标签: thinkphp
Thinkphp官方教程:http://doc.thinkphp.cn/manual/hidden_index.html 需要完善一下:<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}...
location /
{
if (!-e $request_filename)
{
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
ThinkPHP ...
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
if(function_exists("mb_substr")){
$slice = mb_substr($str, $start, $length, $charset);
$strlen = mb_strlen($str,$charset);
}elseif(function_exists('iconv_substr')) {
$slice = iconv_substr($str,$start,$length,$charset);
$strlen = iconv_strlen($str,$charset);
if(false === $slice) {
$slice = '';
}
}else{
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff...
最近项目想改一下URL的格式,也就是伪静态配置,在制作过程中我使用的是win系统,很容易就弄起了!但是linux确不一样!以下是转载的内容,解决了我的问题!
ThinkPHP中默认的URL地址是形如这样的:http://localhost/Myapp/index.php/Index/index/
Myapp是我的项目文件名,默认的访问地址是上面这样的。为了使URL更加简介友好,现在要去掉中间的index.php,方法如下:
1。确认httpd.conf配置文件中加载了mod_rewrite.so 模块,加载的方法是去掉mod_rewrite.so前面的注释#号
2。讲httpd.conf中的Allowoverride None 将None改为All
3。打开对应的项目配置文件,我的项目配置文件是Myapp/Conf/config.php ,在这个配置文件数组中增加一行,‘URL_MODEL’=>2
4。在项目的根目录下面建立一个.htaccess文件,里面写入下面的内容:
[php]
<IfModu...
网站导航在当前页的时候总要显示高亮才能让人知道当前位置。thinkphp代码优化
thinkphp导航高亮实现方法,tp内的eq标签
假设代码是
[php]
<volist name="nav" id="a">
<a class="nav" href="{a.link}">a.text</a>
</volsit>
[/php]
向我们实现这种导航的高亮 html通常是写eq去判断,加个类
那样导致代码很长不易读,其实可以用jQuery实现
[php]
<script type="text/javascript">
$(function(){
var current_url = '/tag-thinkphp.html?p=1';
$('.nav[href="'+current_url+'"]...
php json_decode,php使用json_decode返回NULL
在使用Thinkphp做项目的时候经常用到jquery ajax获取数据,从PHP页面返回JSON数据,但是有时中方字体出现空白的现象。
php5.2以后自带json_decode函数,但是对json文本串的格式要求非常严格。
很可能使用该函数得到的返回值是NULL
使用json_last_error()函数获取到的返回值是JSON_ERROR_SYNTAX(Syntax error)。
可以通过以下几个方式排错。
1. json字符串必须以双引号包含
$output = str_replace("'", '"', $output);
2. json字符串必须是utf8编码
$output = iconv('gbk', 'utf8', $output);
3....
今天在做THINKPHP项目中下载的时候需要将多个文件合并到一个压缩包里面再下载!
以前没有做这种的压缩.
于是查了一下php压缩文件,PHP创建ZIP相关关键词
今天用到的并改了一下,php文件打包函数:
[php]
/**
* 文件打包,将文件加入zip中
**/
public function addZip($file, $filename = null, $zipName = null){
$zip = new ZipArchive();
$root = $_SERVER["DOCUMENT_ROOT"];
if (!$zipName){
$zipName = './Public/Uploads/Download/'.time().'.zip';
}
if (!file_exists($zipName)){
if ($zip->open($zipName,ZIPARCHIVE::CREATE) !== TRUE){
...
thinphp自定义常量,自定义常量,thinkphp常量使用方法
在项目的conf/文件夹下的config.php配置文件中添加到数组里面就是
例:
$arr = array(
'SHOW_PAGE_TRACE' =>false,//开启调试信息true
'URL_MODEL' =>2,
/* 'URL_HTML_SUFFIX' =>'.html', */
/*排除查看的限制账号*/
'IN_ACCOUNT' => array('38','100103'),
//设置消息提示页
'TMPL_ACTION_ERROR' => 'error.html', // 默认错误跳转对应的模板文件
'TMPL_ACTION_SUCCESS' => 'success.html', // 默认成功跳转对应的模板文件
);
在thinkphp常量页面调用方法:
C('IN_ACCOUNT');
可以此项目下的任何地方引用了!是不是很简单!
...
<?php
class NewsModel extends Model{
protected $_auto = array(
array('time_at','mydate','1','callback'),
);
protected function mydate(){
return date("Y-m-d H:i:s");
}
}
?>
前提条件是:time_at 在数据库里的类型为datetime,必须用callback不能用function。
而functiont和callback的区别在于 如果是function,则第二个参数为函数名,而这个函数可以是PHP自带的,也可以是你自己写的,而callback的话第二个参数只能是当前模块所能调用的方法。
如果用这个验证
protected $_auto = array(
array('time_at','time','1','function'),
);
则 time_a...
今天 客户那边说默认的时间太短了,要修改一个到10秒
后来我想了一下修改成5秒得了!
thinkphp如何 修改默认的跳转时间呢!
更改ThinkPHP的默认设置嘛!
查看ThinkPHP根目录下的conf文件夹,设置文件里面找了一下,没有发现呢!
后来直接用Dreamwear全部查找waitSecond这个字符串,
大至修改的位置有4个页面,有两个是sea上用的,没有必要修改!因为不是在sea上放的站!
这个四个文件的位置分别是:
Extend/Mode/Lite/Action.class.php
Lib/Core/Action.class.php
清除缓存,OK!
...
上做一个客户的网站的
运行示例表单验证时,验证码不显示.在网站网络上搜索,试了各种方法 最后修改下面的代码后居然成功,很不理解.
\Examples\Validate\Lib\Action\IndexAction.class.php
public function verify()
{
$type = isset($_GET['type']) ? $_GET['type'] : 'gif';
import("@.ORG.Image");
Image::buildImageVerify(4,1,$type);
}
把 Image::buildImageVerify(4,1,$type); 中的$type出掉 或者把上的gif改成 png时能显示.
不修改在firefox中就会显示 图像因其本身有错无法显示问题修复....
昨天重新安装的系统,上面的环境也重新配置了一次!配置完成的就开始以前的项目!
发现了问题,以前都是用nginx,我现在改成Apache了,发现伪静态不正确
问题:127.0.0.1/Home/Public/login居然无法显示页面,
我conf/config.php
url_model配置的是2,百思不得其解。
一直改url_model的值,打印/index.php/Index显示的是/Home/Public/login,如果将地址改成/Home/index.php/Pulic/login就可以正常显示
那还是应该是配置的问题,最后我将url_model注释掉了,居然可以正常访问了!
还有一个问题就是伪静态的问题了,我在httpd.conf里面已经开启了mod_rewrite,并且也将url_model设置为2了,同时就设置了URL_HTML_SUFFIX但是还是没有起作用
在phpinfo中也找到了mod_rewrite这个!我用{:U(“/Index/show?id=1″)}就是不起作用啊!
问题...
Thinkphp的事务的理解与应用。为何要应用它呢!可能有些同学还不是很清楚,也包括我在内!
事务就是将数据临时插入数据库,在后续的操作中如果有错误可以利用事务回滚,将先前临时插入的数据取消!就相当于没有插入到数据库中,
如果在后续的操作中没有出现错误,那么只要执行提交事务,就完成了数据的插入操作。
ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:
启动事务:
$User->startTrans();
提交事务:
$User->commit();
事务回滚:
$User->rollback();
事务是针对数据库本身的,所以可以跨模型操作的 。
例如:
// 在User模型中启动事务
$User->startTrans();
// 进行相关的业务逻辑操作
$Info = M("Info"); // 实例化Info对象
$Info->save($User); // 保存用户信息
if ...