PHP Learn

9 Useful PHP Functions and Features You Need to Know

1. Functions with Arbitrary Number of Arguments You may already know that PHP allows you to define functions with optional arguments. But there is also a method for allowing completely arbitrary number of function arguments. First, here is an example with just optional arguments: Now, let’s see how we can build a function that accepts any number of arguments. This time we are going to utilize func_get_args(): 2. Using Glob() to Find Files Many PHP functions have long and des...

ThinkPHP示例之 字段映射

要使用模型的自动创建create方法的话,ThinkPHP的表单名称就是数据表的字段名称,如果担心这样不够安全,可以定义字段映射,来隐藏实际的数据表字段名称。 下面的例子就运用了字段映射定义。请注意看表单名称和字段的对应关系。 标题: 邮箱: 内容: 验证码: 输入对应的数字 示例源码 控制器IndexAction类 模型 FormModel 类

ThinkPHP的html:list标签简要用法及注意事项

<html:list id="checkList" name="user" style="list" checkbox="true" action="true" datasource="list" show="id:编号|8%,title:标题:edit,content:内容,create_time|toDate='Y-m-d H#i#s':添加时间,status|getStatus:状态" actionlist="forbid|resume:禁用|恢复,edit:编辑" /> ThinkPHP的html标签库中的list标签功能强大,但没有文档.只好看源码了. 大概如下: datasource和show必须要, datasource是数据源名称, 也就是assign所指向的变量, show是最复杂的, 等会再讲 pk是主键名, 默认为id;style是css样式的class, 因为整个list标签会被编译成table, 比如这里为mylist, 那么样式表中的table.mylist样式就会用在这; checkbox是否显示复选框; action是否显示操作列 s...

ThinkPHP与RBAC(基于角色的权限管理)

访问控制可以简单表述为:判断谁(Who)对什么(What/Which)进行怎样(How)的操作是否为真。对于一个系统来说,有必要建立一个良好的访问控制系统,对访问权限进行合理的分配,用于保证系统的安全性、可靠性。 传统的访问控制技术主要有:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的权限访问控制(Role Based Access Control,简称RBAC)。 DAC和MAC访问控制技术均是直接对用户本身进行权限的管理,细度太小。当用户数量庞大并且用户之间关系复杂时,主体和客体关系的匹配及权限的管理就变得复杂起来。并且权限的变更将导致权限分配列表的变更,此时可能会遭遇到很大的困难,甚至于要修改系统的源代码。 而RBAC访问控制技术很好地解决了这一问题。在RBAC中,用户的权限不是在用户本身上进行管理的,用户的权限是由用户所处的角色所决定的。在权限管理中,通过角色这一桥梁将用户与权限联系起来。用户和角色、角色与权限是一个多对多的关系。 与RBAC访问控制相关的概念有: 用户(User):一个具有唯一标识符的用户,与权限相分离,只能通过所属的R...

为ThinkPHP添加web services

给ThinkPHP应用程序添加web services,首先需要启动soap模块,这里仅需要修改php.int文件即可,extension=php_soap.dll 接着编写服务类。这里单独建立一个Webserver文件夹,把所有的web服务类都放置在里面。这样做的好处不言而喻,一方面为了组织的方便,另一方面可以实现团队协作开发,相互之间不会有过多影响。如下图所示: 在Webserver文件夹下面,我们可以编写各种业务逻辑代码,这里仅是演示之用,所以非常简单。当然了,你还可以在里面实现更为复杂的逻辑。 现在,我们就可以实现web服务端了。在IndexAction.class.php文件里面编写一段web服务端代码,启动web服务。 接着,我们在web客户端编写一小段代码,就可以获取提供的web服务了。 现在你在浏览器上就可以查看到 PrintHello 输出的内容了。

Thinkphp Left Join/Right Join 实例

第一个表为Comment表,第二个表为Reply表, MYSQL上测试语句为:select a.*,b.* from comment a left join reply b on a.id=b.cid //Left Join $Blog->table('comment a')->join('reply b on a.id=b.cid')->field('a.*,b.*')->order('id desc')->limit('8')->findall(); //Right Join $Blog->table('comment a')->join(array('right','reply b on a.id=b.cid'))->field('a.*,b.*')->order('id desc')->limit('8')->findall();

.htaccess not working on apache web server

Q: I already enabled mod_rewrite in httpd.conf file on apache server, but .htaccess configuration is not working at all. How can i fix this problem? A: Make sure AccessFileName set to .htaccess Search httpd.conf for AccessFileName directive. It defines name of the distributed configuration file: Make sure users are allowed to use .htaccess file What you can put in these files is determined by the AllowOverride directive. This directive specifies, in categories, what directives will be...

discuz7验证码不能显示的解决方法

如果你的utf-8版本discuz 7出现突发性的验证码无法显示,可能是因为在手动修改config.inc.php不注意导致的。 如果你直接用记事本修改,会自动在文件头部加上Unicode Singnature (BOM)。 而只要有BOM,在输出验证码图片的时候 就会出现问题。 解决办法很简单,用EditPlus或者DW修改一下文件的编码,即另存为的时候不要保留BOM就好了。

Thinkphp htaccess rewrite的问题

我的网站Thinkphp配置URL_MODE为2, 传到服务器就出现这样的错误,无论进什么页面都会跳转到首页. htaccess文件的配置如下: 后来发现问题出现在Apache的版本上,好像不同版本对rewrite的解析不一样。 修改htaccess如下后,工作正常:

ThinPHP中Join实用举例

这里使用了两个表,第一个表为Post表,第二个表为Category表。 MYSQL语句为: ThinkPHP中Join的写法: 如果你在ThinkPHP中设置了表的前缀,那么在写Join的时候,表名也要加上前缀。