手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

Editplus 自动检查语法

用惯了IDE写PHP,再次回到Editplus的时候总有点不太习惯,比如没有函数提示了(当然也可以自己打造)。不过。。语法检查总还是需要的,总不能自己程序传到服务器上后运行了才知道语法有问题吧?于是利用Editplus的小功能aftersave。改造了一下。

进入editplus的选项设置,点击左侧的User tools菜单,在右侧的Group and Tools下拉框中选择 AutoSave:after save。

大小: 49.06 K
尺寸: 469 x 376
浏览: 1948 次
点击打开新窗口浏览全图

在右侧的 add tool里选择 program。然后输入:标题,程序所在位置,以及参数。。

php语法检测是php.exe -l filename,这个可以通过命令行下运行 php -? 了解。然后要catch output,以及针对current file。。

OK,这样就over了。

看看效果?

大小: 39.2 K
尺寸: 463 x 243
浏览: 1819 次
点击打开新窗口浏览全图

Tags: editplus, php, syntax

Discuz Uchome 小技巧

discuz的ajaxpost功能有点强大,但缺点也很明显,如果ajaxpost提交一个FORM,那么返回的时候只能显示showmessage的内容,而不会主动跳转,因此这里就有一个小技巧 了。。

比如默认submit按钮这样操作:onclick="ajaxpost('formid')";之类的,我们可以先这样。。
onclick="$('__formid').innerText='';ajaxpost('formid');checkPostResult();";
含义其实很简单,先把ajaxpost提示信息所在的div内容清空。然后提交。最后,根据返回值来判断。。

JavaScript代码
  1. function checkPostResult(){  
  2.     var cid = setInterval(function(){  
  3.         if( $('__formid').innerText == 'success'){  
  4.                 alert('提交成功');  
  5.                 location.href='xxxxx.php';  
  6.                 clearInterval(cid);  
  7.         }  
  8.     },1000);  
  9. }  

这个处理也很简单,为什么是用setInterval和clearInterval,主要是由于ajax是异步操作,如果不用setInterval方法 ,那么在ajaxpost结束的时候,其实提示信息还没有append到提示信息所在的ID里,所以用setInterval方法先延迟然后循环处理最后再结束提示。。。

clearInterval用的不太对,但短时间内想不到更好的。先这样临时解决喽。

Tags: discuz, uchome, tips

dedecms 笔记:标签

资料均从网上收集,然后作了整理。。

注意,由于dedecms的模版TAG功能,其实是类似于XML,所以在使用的时候,一定要象XML一样正确闭合,否则,该区块将不变解析

一般来说,我们所使用的DEDECMS模板代码样式有如下几种:

XML/HTML代码
  1. {dede:标记名称 属性='值'/}  
  2. {dede:标记名称 属性='值'} {/dede:标记名称}  
  3. {dede:标记名称 属性='值'} 自定义样式模板(InnerText),即底层模板 {/dede:标记名称}
  4. 如果使用带底层模板的标记,必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式,否则会报错。

1、标记通用特性
(1) 短标记:
{dede:tagname.name/} 等同于 {dede:tagname name='' /}

{dede:global.name/}   外部变量      等同于 <?php echo $name; ?> 【其实这里应该是全局变量】
{dede:var.name/}      var数组       等同于 <?php echo $_vars['name']; ?>
{dede:field.name/}    field数组     等同于 <?php echo $fields['name']; ?>
{dede:cfg.name/}      系统配置变量 等同于 <?php echo $cfg_name; ?>【cfg已经是全局了,所以这个标签其实也可以写成{dede:global.cfg_name/}】


(2) 块标记:
{dede:tagname}
循环代码:
{/dede:tagname}

(3)include 语法:
{dede:include file=''/}
{dede:include filename=''/}
{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}
例如: {dede:include filename="head.htm"/}
对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录

2、函数和PHP语法

if 条件
仅支持 if ,else ,else 直接用{else}表示,但不支持{else if}这样的语法 ,一般建议模板中不要使用太复杂的条件语法,如果确实有需要,可以直接使用 php 语法。

XML/HTML代码
  1. {dede:if 条件}  
  2.     a-block  
  3. {else}  
  4.     b-block  
  5. {/dede:if}  
条件中允许使用 var.name 、 global.name 、 field.name、cfg.name 表示相应的变量。
如:
XML/HTML代码
  1. {dede:if field.id>10 }  
  2. {/dede:if}  
php 代码块:
XML/HTML代码
  1. {dede:php  
  2. php 代码  
  3. /}  
XML/HTML代码
  1. {dede:php}  
  2. php代码  
  3. {/dede:php}  
......其它还在整理中

Tags: dedecms, 笔记, tag, 标签用法

typecho 发布 0.8release版本

算起来,这一个release版本的时间是挺长了。从5月25日到8月15日,跨度也挺大。
下载页面在:http://typecho.org/download,这次更新的内容不多,主要还是一些补丁和BUG的修复吧。

其实如果你对typecho有意见,你可以到 http://code.google.com/p/typecho的issue里进行提问和申请。
顺便说一声,如果你觉得官方的插件太少,你可以直接从SVN里下载全部版本,里面包含了几乎所有的插件。还有一些文档也可以查看

svn的地址是:svn checkout http://typecho.googlecode.com/svn/trunk/ typecho-read-only

http://code.google.com/p/typecho/source/list,看这里就可以了解每一个小版本改动了些什么东西。当然一些细小的改动,就没有description了。其实说起来typecho的东西对于很多人来说算是比较复杂的。几乎所有的组件都基于plugin或者widget了,对效率还是会有影响的吧。。。

Tags: typecho, release

dedecms:如何在runphp=yes的标签中使用其他field值

dedecms有强大的TAG自定义功能,但如果你是在runphp=yes的情况下,你无法使用[field]等标签,因为它不解释了(都当成PHP代码了,怎么可能解析呢?)
怎么办?
查了一下google,没有发现解决方法。所以我想了很久想出一个临时性的解决方法,即用全局变量来解决这个问题。。
{dede:php}$GLOBALS['xxoo']=$arc->Fields['fieldname']{/dede:php}
{dede:field.xxxx runphp="yes"}@me="test".@me."-test".$GLOBALS['xxoo'];{/dede:field.xxxx}
即,先开一个PHP的标签,把想赋的值替换给global变量。然后在另外的运行中将field值赋值给他。

写的乱,不过还是解决了这个问题了。。

Tags: dedecms, runphp, field