PHP-拾贝

原创 2018年01月08日 09:30:21

几款php CMS的比对

DeDecms、php168,phpcms、VeryCMS、DiyPage 比较
http://www.cmsyou.com/support/11_2.html

页面样式很不错
http://www.wiccle.com/downloads/file_downloads/wiccle_cms/post/wiccle_cms#top
http://www.cmsmadesimple.org/downloads/
silverstripe 后台管理不错

基本语法


 PHP 官方参考手册
http://cn.php.net/manual/zh/function.define.php
7. isset
检查变量是否定义
6.
如果你正打算建设的网站基本上是由文档内容组成的,同时你不想费力的维护菜单、导航条、META标签数据、文件等内容,MODx完全适合你。而如果你的网站需要更多的用户交互内容,比如论坛、购物车、社会网络等,那么MODx也许不是你的解决方案。

php  , extension 和 模板

zend 有版本要求
smarty 也有版本要求。。What version of PHP do you have? Make sure you have PHP 5.2.3 or more recent.

php学习网站: http://www.blabla.cn/php/php_comments.html

5.
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象) 

4. php dirname(__FILE__)
__FILE__的路径是当前代码所在文件
dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名

3. php 注释
 // 这是单行注释
/*
这是多行注释
这是多
*/


2. static调用不会走 __construct()
      DBConnection::getDbConn();

1.Concatenation Operator     (.) 
2.strlen()
3.strpos()  函数用于在字符串内检索一段字符串或一个字符。
4. date("D") return as Mon, Fri
5. if(){} elseif(){} else 

Cookie
1. setcookie() 函数用于设置 cookie。
2. setcookie() 函数必须位于 <html> 标签之前
3. 在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之
4. $_COOKIE 变量用于取回 cookie 的值
5. isset() 函数来确认是否已设置了 cookie
6. 删除 cookie 时,您应当使过期日期变更为过去的时间点
   setcookie("user", "", time()-3600);

Session
1. 启动会话 session_start(), session_start() 函数必须位于 <html> 标签之前
2. 存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
3. unset() 函数用于释放指定的 session 变量
4. session_destroy() 函数彻底终结 session

PHP Exception
    * 简单的 "die()" 语句
    * 自定义错误和错误触发器
    * 错误报告
error_function(error_level,error_message,
error_file,error_line,error_context)

Mail
    1. mail(to,subject,message,headers,parameters)

dedecms

4. arc.partview.class.php 
      PartView 产生页面的类
      DedeTagParse 解析dede tag的类(dtp是实例) ,位于dedetag.class.php 文件里。
3. DEDEINC : php 文件所在的目录。 也就是include 页面
2. images/js/j.js 导入JQuery
1. #@__
数据库前缀。 在使用是,会用实际的前缀replace.
blog 页面参考样式
http://blog.bandao.cn/archive/225404/
http://blog.sina.com.cn/s/blog_517d1cb00100se0v.html

1. 预防垃圾评论和垃圾注册的方法
在Member 的目录下的config.php 的Rqeuire_once 之后加上以下部分:
if(stristr($_SERVER['HTTP_REFERER'],"yoursite.com")){ 

else { 
echo ‘’; 
ShowMsg(‘对不起,您的来源有问题,如确认没问题请联系我们yoursite.com!’, ‘index.php’); 
exit(); 
}

2. 使用图形验证码
用户删除
3.
1)查找垃圾用户(需要根据垃圾用户的特征来判断).
select logintime,userid,sex from hfpet_member where sex='' order by logintime desc;
delete from hfpet_member where sex='' and mid> 8000;

2)查找文档微表中member id 不为空且member id 不是注册用户的文档
文档微表,用于一些轻量的查询! 
select * from  hfpet_arctiny where mid !='' and mid not in (select mid from hfpet_member) order by id asc;

3)查找没有被审核,且member id 不为空且member id 不是注册用户的文档
select title,mid,ismake from hfpet_archives where ismake='' and mid !='' and mid not in (select mid from hfpet_member);

4)查找没有文档id 的 addonarticle
select * from hfpet_addonarticle where aid not in (select id from hfpet_archives);

删除顺序:
delete from hfpet_member where sex='' and mid> 12000;
delete from  hfpet_arctiny where mid !='' and mid not in (select mid from hfpet_member);
delete from  hfpet_archives where ismake='' and mid !='' and mid not in (select mid from hfpet_member);
delete from hfpet_addonarticle where aid not in (select id from hfpet_archives);


 标签名称:arclist
标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。
功能说明:获取指定文档列表
适用范围:全局使用
基本语法:
view source
print?
1        {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'} <a href='[field:arcurl/]'>[field:title/]</a> {/dede:arclist}


参数说明:
col='' 分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示
如果col='1'要多列显示的可用div+css实现
以下为通过div+css实现多列的示例:
view source
print?
1        <style type=text/css> div{width:400px;float:left;} </style> {dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'} •[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/> {/dede:arclist}


当col>1将使用原来的table多列方式显示
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;
getall='1' 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型 image含有缩略图 commend推荐
orderby='sortrank' 文档排序方式
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
§ orderby='near'
§ orderby=='lastpost' 按最后评论时间
§ orderby=='scores' 按得分排序
§ orderby='id' 按文章ID排序
§ orderby='rand' 随机获得指定条件的文档列表
keyword='' 含有指定关键字的文档列表,多个关键字用","分
innertext = '' 单条记录样式
aid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid 频道ID
limit='起始ID,记录数'  (起始ID从0开始)表示限定的记录范围(如:limit='1,2'  表示从ID为1的记录开始,取2条记录)
flag = 'h' 自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档


用arclist调用于附加表字段的方法:


要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
view source
print?
1        {dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'} [field:textlink /] - [field:softtype /]<br /> {/dede:arclist}


底层模板字段:
ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,
source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,
description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,
stime(pubdate 的"0000-00-00"格式)
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>
字段调用方法:[field:varname/]
view source
print?
1        {dede:arclist infolen='100'} [field:textlink/]<br> [field:infos/]<br> {/dede:arclist}


注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
view source
print?
1        [field:senddate runphp='yes'] $ntime = time(); $oneday = 3600 * 24; if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>"; else @me = ""; [/field:senddate]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oscar999/article/details/78999401
收藏助手
不良信息举报
您举报文章:PHP-拾贝
举报原因:
原因补充:

(最多只允许输入30个字)