TablePress 扩展:在表格中执行 PHP 代码

在已经发布的一系列 TablePress 扩展中,这应该是非常非常有用的一个吧。这也是应很多用户的要求发布的一个扩展。它使得 WordPress 表格管理插件 TablePress 能够解析并执行写在表格单元里的 PHP 代码。

该扩展有助于动态生成表格内容或者与其它插件特性相结合。不过插件作者提醒大家尽量避免使用这个扩展,而是可以通过开发自己的简码来实现类似的功能,以便于您自己对表格中 PHP 代码的控制,而不是由编辑表格的用户来控制。这是从安全的角度来讲的,因为使用了该扩展,就意味着任何可以编辑表格内容的用户都可以通过表格来执行 PHP 代码。除非你信任拥有表格编辑权限的所有用户,否则请不要使用该插件!

安全警告
正式开始之前,请您先阅读下面的警告。您必须在确认您非常需要这样的功能,并且很清楚您正在干什么的情况下使用该扩展。因为,PHP 代码的功能是非常强大的!根据PHP 的结构特性还有 HTTP 响应请求的方式,从表格单元内部运行的 PHP 代码与WordPress(或者其插件)的 PHP 代码在同一个运行环境中,所以拥有跟它们一样的权限,凡是它们能做的事情,表格单元内部的 PHP 代码也能做。但是与插件或者 WP 核心文件不同的是,这些代码并不一定只有管理员才能控制,也就是说,您需要防止普通用户通过这个途径来执行不利于网站的代码。如果您的 WordPress 网站中有多个注册用户,这一点就显得更加关键:任何能够编辑 TablePress 表格内容的人员都能够插入 PHP 代码(然后由服务器执行)。如果他们想这么做的话,他们能够基于这种方式来做一些很不好的事情!既然如此,您必须保证只有那些您充分信任的用户才能够编辑 TablePress 表格,最好只允许网站管理员来进行相关操作。再次强调:谨慎使用相关功能!TablePress 或者其扩展均不会检查插入 PHP 代码的用户是否具有相关权限!并且:只要一个用户能够编辑表格,他就能够插入任何想要的 PHP 代码!(很显然,如果您是 WordPress 网站的唯一注册用户,所有这些问题就都不同担心了。)对于该功能的滥用,插件作者以及本网站不负任何责任!

写给 PHP 开发人员:该扩展使用 PHP 语言的 eval() 函数来实现。该函数获取一个字符串(在这里就是我们表格单元里的内容)并且作为 PHP 代码来执行。因 WordPress 简码的内部结构所限,我们需要进行输出缓存来配合该函数,以便于任何输出都能够随着 [table id=N /]  简码一起输出而不是直接输出到浏览器。(在使用该插件时请充分考虑该特点,因为缓存很大数目的单元格会轻微增加表格渲染所需要的时间,同时也会增加服务器的资源消耗。)

另外,在某些服务器上,eval() 函数可能会因为安全原因而被服务器管理员禁用。

目录 Contents

下载

TablePress 扩展:在表格中执行 PHP 代码(点击下载该扩展

安装后,此扩展在 WordPress 后台“插件”页面显示为,

TablePress 扩展:在表格中执行 PHP 代码

使用说明

要使用该 TablePress 扩展,先从上面下载插件文件,然后象对待一般的 WordPress 插件那样安装、激活。详细说明请看 TablePress 扩展页面上的使用说明

您现在就可以将 PHP 代码输入到表格单元中了,当然必须是有效的 PHP 语句,包括开始和结束括弧(<?php 和 ?>)。在那些代码中,您可以使用常规的 echo 函数来输出文本。任何不在括弧中的文本将会按照原样直接输出。

使用中如果有什么问题,请详细阅读相关文档,或者到讨论区 TablePress 版块寻求解答。在 TablePress 扩展页面还有更多扩展可供使用。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/tablepress-ext_php-in-tables/>。转载请保留此信息及相应链接。

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>