摘要: ThinkPHP使用总结(转载)用ThinkPHP做过几个项目后,感觉这个框架蛮不错的,很适合自己的逻辑习惯,开发起来也快捷,呵呵, 总结了一些项目中常用的东东,希望对初学TP的朋友有所帮助! ThinkPHP中的BUG及技巧与策:1. 模板中不能使用的标签{$content} {$i}2. If标签如: <if condition="$name eq 1 ">试验后总是有想不到的错误, 这样,还不如直接用<?php if(...){ ...?>来得快些呢.约定:1.所有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致2.控 阅读全文
posted @ 2012-09-25 17:34 longailili 阅读(209) 评论(0) 推荐(0)
摘要: 上传概述上传类使用ORG类库包中的Net.UpdateFile类,ThinkPHP内置的Action操作里面(主要是insert和update操作,其他操作可以相应实现)实现了自动识别是否存在文件上传,如果存在会自动进行处理。而上传类要做的仅仅是文件上传的过程,其他功能需要依赖系统类库或者相应类库。系统对文件上传设置了很多灵活的参数以便进行更细致的控制。下面我们通过几种常用的例子分别来描述下如何使用UploadFile类。目前ThinkPHP0.9.5版本的上传类包含的功能如下(有些功能需要结合 ThinkPHP系统其他类库):1、基本上传功能2、批量上传3、Ajax方式上传4、自动生成图片缩 阅读全文
posted @ 2012-09-25 17:24 longailili 阅读(385) 评论(0) 推荐(1)
摘要: 模板替换:在进行模板输出之前,系统还会对渲染的模板结果进行一些模板的特殊字符串替换操作,也就是实现了模板输出的替换和过滤。这个机制可以使得模板文件的定义更加方便,默认的替换规则有:../Public:会被替换成当前项目的公共模板目录通常是/项目目录/Tpl/default/Public/__PUBLIC__:会被替换成当前网站的公共目录通常是/Public/__TMPL__:会替换成项目的模板目录通常是/项目目录/Tpl/default/__ROOT__:会替换成当前网站的地址(不含域名)__APP__:会替换成当前项目的URL地址(不含域名)__URL__:会替换成当前模块的URL地址(不含 阅读全文
posted @ 2012-09-25 17:23 longailili 阅读(126) 评论(0) 推荐(1)
摘要: 16.截断字符串{:dsubstr("$arrData[title]",0,35)}17.多表串联-------------执行最后一条语句$co_p=M("company");$company=$co_p->table('think_companya,think_jobb')->where('a.account=b.account')->field('b.itemid,a.companyName')->order('a.useriddesc')->group( 阅读全文
posted @ 2012-09-25 17:22 longailili 阅读(150) 评论(0) 推荐(0)
摘要: ->select();$this->assign('list',$list);$pages=$Page->show();$this->assign('page',$pages);$this->display();}22.获得最后一次执行的sql语句echoM("job_apply")->getLastSql();27.修改数据$User=M("User");//实例化User对象要修改的数据对象属性赋值$data['name']='ThinkPHP';$d 阅读全文
posted @ 2012-09-25 17:22 longailili 阅读(115) 评论(0) 推荐(0)
摘要: 1..主机目录和网站目录可以在一个地方,可是为了安全,我们可以用require来连接你的网站到别的地方,确保了你网站的安全.2.必须写上'APP_DEBUG'=>'TRUE',在config.php中,才可以使用.就是说,才可以插入数据成功图片又连接不上了,就是没有图片,没有css.,问题是,原来都有.现在没有了修改方法:删除runtime里面的东西就是了三:css.images.js的调用不能用问题:有的人的直接写__public__在原来的images等的路径上加上就是了.但是有的加上不行,原因主要是:有的是在index.phpindex.html里面 阅读全文
posted @ 2012-09-25 17:21 longailili 阅读(202) 评论(0) 推荐(0)
摘要: IP地址仅使用”$_SERVER['REMOTE_ADDR']“这样单个的地址获得方法,可能会存在一些问题(比如在局域网中获得的IP地址与广域网中的不同等)。所以我特写了一个利用多种获取方式来保证IP地址获得正常的方法,希望对您能有所帮助!语言:PHP类型:Function(方法)返回值类型:String(字符串)代码如下:function GetIP() {if (getenv(“HTTP_CLIENT_IP”) && strcasecmp(getenv(“HTTP_CLIENT_IP”), “unknown”)) {$ip = getenv(“HTTP_CL 阅读全文
posted @ 2012-09-25 17:19 longailili 阅读(180) 评论(0) 推荐(0)
摘要: 最近比较绕有兴趣地学习PHP,看完了一些基础语法、学会了使用SMARY模版,继而看了ThinkPHP框架,此框架的强大超出我的意外,它的ROR真是强,还有内置的CRUD,比JAVA的框架更智能。方便记忆性的学习转载了一些以下文章CURD知识之一 C 创建(create)名词解析:1CURD:代表数据库四个基本操作:创建:create,更新:update,读取:read,删除:delete2模型对象:即数据对象,你项目里每一个Model类文件都会对应着一个数据表(或者视图),模型与数据表存在一种映射关系。TP约定了命名要遵循一定的规范,如果不符合,则需要根据情况进行额外的相应设置。例如Model 阅读全文
posted @ 2012-09-25 17:15 longailili 阅读(215) 评论(0) 推荐(0)
摘要: <?phpif ('source' == $_GET['act']) { //查看源代码 show_source($_SERVER["SCRIPT_FILENAME"]); exit;} //end ifset_time_limit(0);for ($i = 0; $i < 500; $i++) { $users[] = 'Tom_' . $i;} //end for$width = 500; //显示的进度条长度,单位 px$total = count($users); //总共需要操作的记录数$pix = $w 阅读全文
posted @ 2012-09-25 17:12 longailili 阅读(312) 评论(0) 推荐(0)
摘要: ThinkPHP为PHP开发搭建了简洁易用的框架,学习总结下1、建立项目文件app,新建网站入口文件index.php,入口文件几乎都一致:<?phpdefine('THINK_PATH','../ThinkPHP/'); //定义ThinkPHP框架路径(相对于入口文件)define('APP_NAME','Myapp');define('APP_PATH','.');require(THINK_PATH."/ThinkPHP.php");App::run();?> 阅读全文
posted @ 2012-09-25 17:10 longailili 阅读(193) 评论(0) 推荐(0)
摘要: 1:修改数据库。增加字段 alter table ecs_goods add column url varchar(40) default ''; 2:goods_info.htm <tr> <td class="label">自定义URL</td> <td><input type="text" name="url" value="{$goods.url}"size="30" /></td> </tr& 阅读全文
posted @ 2012-09-25 16:54 longailili 阅读(694) 评论(0) 推荐(0)
摘要: 作者:konakona转载请著名!申明,这不是一篇教学文,我没有义务教会每一个人,但我有必要分享我的所懂得的给大家,所以能不能真正看懂,就在你各人的LAMP能力了.因为我不善解释…我只是提供一个改的思路,大家想改成什么样,只要够灵活都可以实现.最近客户有一个需求,就是他可以在后台修改商品和分类的URL,大概是 http://www.xx.com/yourcatename.html 这样子.但这样的结果是:要将请求提取出来后拿到数据哭中LIKE…牺牲的效率太大,不适合B2C网站.所以我推荐客户一种易于SEO,同时能减轻服务器负担,又提升执行效率的URI.分类 http://www.xx.com/ 阅读全文
posted @ 2012-09-25 16:41 longailili 阅读(387) 评论(0) 推荐(0)
摘要: 打开根目录下的index.php,找到:$smarty->assign('invoice_list',index_get_invoice_query()); // 发货查询在下面添加一行:$smarty->assign('post_list',index_get_post_query()); // 发货通知再找到://-- PRIVATE FUNCTIONS在下面添加以下代码:function index_get_post_query(){$sql = 'SELECT order_sn, user_name,action_note FROM 阅读全文
posted @ 2012-09-25 13:19 longailili 阅读(304) 评论(0) 推荐(0)
摘要: 一个类可以使用 implements 实现接口,甚至可以实现多个接口。大部分的书说,这样是为了实现PHP的多继承。为什么呢? PHP5是单继承的,一个类只可以继承自一个父类。接口可以实现多个,这样就是多继承了。这样说有些道理。但,既然接口里面的方法没有方法体,所谓的多继承又有什么意义?接口的意义在于多态。使用implements实现接口使用implements来实现一个接口。如果实现接口而没有实现其中的抽象方法,会报错。<?interface User {const MaxGrade= 99; function getName(); function setName($_name);}c 阅读全文
posted @ 2012-09-25 13:10 longailili 阅读(319) 评论(0) 推荐(0)
摘要: 我们设计一个在线销售系统,用户部分设计如下:将用户分为,NormalUser, VipUser, InnerUser三种。要求根据用户的不同折扣计算用户购买产品的价格。并要求为以后扩展和维护预留空间。用户部分先声明了一个接口User,用户都是User的实现。User.php<?/** 定义了 User接口.* 和子类 NormalUser,VipUser,InnerUser *///User接口,定义了三个抽象方法.interface User{public function getName();public function setName($_name);public functio 阅读全文
posted @ 2012-09-25 13:06 longailili 阅读(244) 评论(0) 推荐(0)
摘要: 为了更好的演示MVC的工作方式,我们使用了一个简单的新闻文章发布系统作为例子。分为使用MVC和不使用MVC两种方式。我们只作一个基本的演示,从数据库里读出一些文章列表,并在页面上显示。一般的流程就是,连接数据库,查询数据库,循环输出html结果。下面的代码就是如此做的。<?php mysql_connect(…); $result = mysql_query('select * from news order by article_date desc'); ?> <html> <body> <h1>News Articles< 阅读全文
posted @ 2012-09-25 12:57 longailili 阅读(217) 评论(0) 推荐(0)
摘要: 之前也写过很多图片上传的程序,但是都没有下面这个简短。越简单的程序越好,不是吗?先上源代码,你可以copy到自己的电脑上去运行~<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <head> <title>多文件上传</title> </head> <body> <form accept="" method="post" enct 阅读全文
posted @ 2012-09-25 12:50 longailili 阅读(279) 评论(0) 推荐(0)
摘要: 调用:js/common.js以添加商品到收藏夹为例:Goods.dwt :<a href=”javascript:collect({$goods.goods_id})”><img src=”images/bnt_colles.gif” /></a>function collect(){Ajax.call(‘user.php?act=collect’, ‘id=’ + goodsId, collectResponse, ‘GET’, ‘JSON’);}/* ** 处理收藏商品的反馈信息*/function collectResponse(result){al 阅读全文
posted @ 2012-09-25 12:39 longailili 阅读(195) 评论(0) 推荐(0)
摘要: 在后台开启一步购物 则可以不用到购物车 直接结算 。从而实现立刻购买。然而购物车的功能又没有了。有没有像淘宝那样即可以立刻购买。又有购物车功能呢。?首先 我们先将添加购物车的跳转链接复制粘贴到收藏商品的按钮上 然后设一个bool值为1 。<a href=”javascript:bool =1;addToCart({$goods.goods_id})”>。然后直达JS处理页面common.js 在这个脚本的第一行代码之上加一个全局变量var bool =0; 然后查找点击购物车之后的那条链接即:flow.php?step=cart找到这个(在第88行 那块)之后 然后在下面加这句话 阅读全文
posted @ 2012-09-25 12:38 longailili 阅读(627) 评论(0) 推荐(0)
摘要: 下面以ECSHOP 2.7.2 UTF-8(这里与版本似乎无关,哇哈哈)为例,添加自定义的lbi文件。首先必须在xml控制中增加位置信息。然后为了让新的ecshop模板库文件lbi能在模板中灵活控制显示位置和显示顺序。而且让新增加的ecshop模板库文件在后台方便管理。必须还在后台增项目管理。以及在ecshop的languages语言包中。增加对应的语言控制信息。 在新增加的ecshop模板库文件lbi中。我们必须注意以下几点 1:foreach循环或者是判断语句,最好加上<!– –>标签的注释。 为了让ecshop新增的模板库文件受到后台的管理,而且能够和ecshop默认的模板库 阅读全文
posted @ 2012-09-25 12:34 longailili 阅读(469) 评论(0) 推荐(0)