linux php python mysql jquery JavaScript 学习之窗

PHP常用函数类-比较实用的几PHP函数方法

<?php
class useful{
 
/*
  * 常用函数类
  * 作    者:多菜鸟
  * 联系邮箱:kingerq AT msn DOT com
  * 创建时间:2005-07-18
  * 来源:
http://blog.csdn.net/kingerq
  */

 
 
/*
  * 功能:格式化数字,以标准MONEY格式输出
  */

 
 
function formatnumber($num){
 
return number_format($num, 2, ".", ",");
 
}
 
 
/*
  * 功能:格式化文本,将\n转成<br>等
  * 参数:$string 来源字符串
  * 返回:处理后的字符串
  */

 
function formatstring($string = ""){
 
$string = preg_replace(array("/ /", "/ /"), array("&nbsp;", "&nbsp;&nbsp;"), $string);
 
return nl2br($string);
 
}
 
 
/*
  * 功能:格式化文本输出
  * 参数 $text 为需格式化的文本内容
  */

 
function formatcontent($text){
 
$trans = get_html_translation_table(HTML_SPECIALCHARS);
 
$trans = array_flip($trans);
 
$text = strtr($text, $trans);
 
//$text = str_replace("\n", "<br>", $text);
 
//$text = str_replace(" ", "&nbsp;", $text);
 
return $text;
 
}
 
 
/*
  * 将字节转换成Kb或者Mb…
  * 参数 $num为字节大小
  */

 
function bitsize($num){
 
if(!preg_match("/^[0-9]+$/", $num)) return 0;
 
$type = array( "B", "KB", "MB", "GB", "TB", "PB" ) "color: gray">;
 
 
$j = 0;
 
while( $num >= 1024 ) {
  
if( $j >= 5 ) return $num.$type[$j];
  
$num = $num / 1024;
  
$j++;
 
}
 
return $num.$type[$j];
 
}
 
 
/*
  * 功能:不足3的倍数位的数字,用0补足
  * $num 需补充的数字
  * 返回补充完整的数字串
  */

 
function prefix($num){
 
if( strlen( $num ) % 3 == 0 ) {
  
return $this->prefix("0".$num);
 
}
 
return $num;
 
}
 
 
/*
  * 功能:连续建目录
  * $dir 目录字符串
  */

 
function makedir( $dir, $mode = "0777" ) {
 
if( ! $dir ) return 0;
 
$dir = str_replace( "\\", "/", $dir );
 
 
$mdir = "";
 
foreach( explode( "/", $dir ) as $val ) {
  
$mdir .= $val."/";
  
if( $val == ".." || $val == "." ) continue;
  
  
if( ! span>file_exists( $mdir ) ) {
    
if(!@mkdir( $mdir, $mode )){
    
echo "创建目录 [".$mdir."]失败.";
    
exit;
    
}
  
}
 
}
 
return true;
 
}
 
 
/*
  * 功能:检测时间的正确性
  * $date 为时间,例:YYYY-MM-DD
  * 返回:通过返回true,反之返回false
  */

 
function chkdate( $date ) {
 
$d = explode( "-", $date );
 
if( checkdate( $d[1], $d[2], $d[0] ) ) {
  
return true;
 
}else {
  
return false;
 
}
 
}
 
 
/*
  * 防注入处理(为变量加入斜杠)函数
  * 参数 $array 为防注入变量数组
  */

 
function add_s(&$array){
 
foreach($array as $key=>$value){
  
if(!is_array($value)){
    
$array[$key]=addslashes($value);
  
}else{
    
$this->add_s($array[$key]);
  
}
 
}
 
}
 
 
/*
  * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码)
  * 参数 $array 为需转换的字符串或者数组
  */

 
function specialhtml(&$array){
 
if(is_array($array)){//数组处理
  
foreach($array as $key=>$value){
    
if(!is_array($value)){
    
$array[$key]=htmlspecialchars($value);
    
}else{
    
$this->specialhtml($array[$key]);
    
}
  
}
 
}else{
  
$array = htmlspecialchars($array);
 
}
 
}
 
 
/*
  * 可以避免乱码的截取汉字
  * 参数 $str 为字符串,$start 为开始字符,$len 结束字符
  * 返回截取后的字符
  */

 
function msubstr($str, $start, $len) {
 
$tmpstr = "";
 
$strlen = $start + $len;
 
for($i = 0; $i < $strlen; $i++) {
  
if(ord(substr($str, $i, 1)) > 0xa0) {
    
$tmpstr .= substr($str, $i, 2);
    
$i++;
  
} else
    
$tmpstr .= substr($str, $i, 1);
 
}
 
return $tmpstr;
 
}
 
 
/*
  * 功能:综合提示JS代码输出
  * 参数 $msg 为提示信息
  *      $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回
  * 输出提示代码并结束程序
  */

 
function alert_msg($msg, $direct = "0"){
 
switch($direct){
  
case 0://提示
    
$script = "";
  
case 1://提示刷新返回
    
$script = "location.href=\"".$_SERVER["HTTP_REFERER"]."\";";
    
break;
  
case 2://提示返回
    
$script = "history.back();";
    
break;
  
default://提示转向指定页面
    
$script = "location.href=\"".$direct."\";";
 
}
 
echo "<script language=’javascript’>window.alert(’".$msg."‘);".$script."</script>";
 
exit;
 
}
 
 
/*
  * 功能:取得给定日期所在周的开始日期和结束日期
  * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD
  *       $first 一周以星期一还是星期天开始,0为星期天,1为星期一
  * 返回:数组array("开始日期", "结束日期");
  */

 
function aweek($gdate = "", $first = 0){
 
if(!$gdate) $gdate = date("Y-m-d");
 
$w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6
 
$dn = $w ? $w$first : 6;//要减去的天数
 
$st = date("Y-m-d", strtotime("$gdate -".$dn." days"));
 
$en = date("Y-m-d", strtotime("$st +6 days"));
 
return array($st, $en);//返回开始和结束日期
 
}
 
 
/*
  * 功能:检测页面是否合法连接过来
  * 如果为非法,就转向到登陆窗口
  */
>
 
function checkurl(){
 
//如果直接从浏览器连接到页面,就连接到登陆窗口
 
//echo "referer:".$_SERVER['HTTP_REFERER'];
 
if(!isset($_SERVER['HTTP_REFERER'])) {
  
header("location: index.php");
  
exit;
 
}
 
$urlar = parse_url($_SERVER['HTTP_REFERER']);
 
//如果页面的域名不是服务器域名,就连接到登陆窗口
 
if($_SERVER["HTTP_HOST"] != $urlar["host"]) {
  
header("location: index.php");
  
exit;
 
}
 
}
 
 
/*
  * 读取文件内容
  * 参数 $file 为文件名及完整路径
  * 返回文件内容
  */

 
function readfiles($file){
 
$tdata = "";
 
$fp = fopen($file, "r");
 
 
if(filesize($file) <= 0) return;
 
 
while($data = fread($fp, filesize($file))){
  
$tdata .= $data;
 
}
 
fclose($fp);
 
return $tdata;
 
}
}
?>

2008年11月28日未分类

没有评论

最近事情比较多,博客暂时放一下

最近的事情真多, 网站火爆一下,又不行了。 200 0 64果然是k站的表现。  哎。 

 

整理一下

原来我是一部山寨机,一部Fantasy牌的山寨机

转载于阿飞的《个人站长与山寨机》

现在山寨机越来越多,关于山寨机的话题也越来越多,不知为什么,总觉得和个人站长有着很多相似。。于是,我列一列:

1,山寨机功能非常多,但不一定每个功能都很好用。
      个人站长什么都会点,但不一定每一样都很厉害。

2,山寨机的电池容量都比较高,待机持久。
       个人站长每天花的时间都非常多,每天可以在线18小时。

3,山寨机不是正规军。
       个人站长更加不是正规军。

4,山寨机外形虽然不是非常好看,但耐用。
      个人站长虽然能力不高,但都很辛勤。

 5,山寨机价格低,利润也没有正规手机的高。
       个人站长赚的钱也不多。

 6,山寨机经常抄品牌机的外形。
        个人站长也经常抄别人的页面。

7,山寨机有很多非常有意思的创意。
       个人站长也经常会做出一些很好的创意。

8,山寨机从设计到出产品非常快,买买配件加个软件就是一部手机了。
      个人站长做网站也非常快,上CHINAZ下载个源码加个域名就是一个网站。

9,山寨机里也有一些混出头的,如天语。
      个人站长也有一些混出头的,如蔡文胜、庞升东等等。

10,山寨机的销量非常之庞大,越来越大,据说占整个中国市场的一半。
        个人站长手上网站的流量也很大,也越来越大,有没有占一半我不知道,但我知道光CNZZ统计里面个人网站的流量超过10亿每天。

 将个人站长比做山寨机并非想贬低站长,而是确实觉得有一些相似,街上山寨机越来越多就代表它是成功的,代表他是适应中国市场的,个人站长这群人虽然有很多成功的,虽然总体的流量也很大,但是再往上跟这些大型网站比还是很不够的,就像天语跟诺基亚比一样,个人站长还有很长的路要走。

看了阿飞这个山寨机理论觉得很恰当,呵呵,不知道阿飞是否把自己也当个山寨机呢? 还是当自己已经是天语了。

赚钱不容易,做站赚钱更不容易。 慢慢摸索

我的手机主题站大量返回Baiduspider+ 200 0 64

以前手机主题这个词我在百度第一页,现在一下回到第六页,而且快照由以前的当天快照直接回档到10月29日的快照,看日志,发现大量返回了200 0 64,貌似64返回码就会从索引从消失,事实上也是这样的,我的收录量一下就剩首页了,其他的页面都被K掉,而且快照也回档。以前的长尾关键词也都搜不到了,是不是优化过度了呢?

看看百度蜘蛛的爬行记录吧:

这个是6号的日志

2008-11-06 08:06:30 W3SVC1374512584 **.**.**.** GET /index.shtml – 80 – 61.135.168.39 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
下面是今天的,

2008-11-10 02:02:41 W3SVC1374512584 **.**.**.** GET /index.shtml – 80 – 220.181.32.13 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
2008-11-10 02:03:21 W3SVC1374512584 **.**.**.** GET /zhuti/index.shtml – 80 – 220.181.32.13 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
2008-11-10 02:03:52 W3SVC1374512584 **.**.**.** GET /xuanku/index.shtml – 80 – 220.181.32.13 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64

我的解决思路:
1、减少该页面关键字词密度
2、手机主题内容页title长度减少,不相关的关键字词删除。
3、减少堆积(我在页面上面和底部堆积了一些关键词。)
4、保持更新
5、检查LOG,是否百度Bot还在抓取,频率。

 

 

不知道是否有效果,看看这个星期三的结果吧。  慢慢摸索。

毕业论文研究方法概述

最近在写毕业论文,碰到研究方法一栏,不知道怎么填,便在搜索引擎中搜了一下,结果发现有这类问题的朋友还真不少,比如在百度知道很多人提过这类问题,但都没有得到很好的答案。

毕业论文的研究方法主要有(有遗漏的请大家补充):

调查法

调查法是科学研究中最常用的方法之一。它是有目的、有计划、有系统地搜集有关研究对象现实状况或历史状况的材料的方法。调查方法是科学研究中常用的基本研究方法,它综合运用历史法、观察法等方法以及谈话、问卷、个案研究、测验等科学方式,对教育现象进行有计划的、周密的和系统的了解,并对调查搜集到的大量资料进行分析、综合、比较、归纳,从而为人们提供规律性的知识。

调查法中最常用的是问卷调查法,它是以书面提出问题的方式搜集资料的一种研究方法,即调查者就调查项目编制成表式,分发或邮寄给有关人员,请示填写答案,然后回收整理、统计和研究。

观察法

观察法是指研究者根据一定的研究目的、研究提纲或观察表,用自己的感官和辅助工具去直接观察被研究对象,从而获得资料的一种方法。科学的观察具有目的性和计划性、系统性和可重复性。在科学实验和调查研究中,观察法具有如下几个方面的作用:①扩大人们的感性认识。②启发人们的思维。③导致新的发现。

实验法

实验法是通过主支变革、控制研究对象来发现与确认事物间的因果联系的一种科研方法。其主要特点是:第一、主动变革性。观察与调查都是在不干预研究对象的前提下去认识研究对象,发现其中的问题。而实验却要求主动操纵实验条件,人为地改变对象的存在方式、变化过程,使它服从于科学认识的需要。第二、控制性。科学实验要求根据研究的需要,借助各种方法技术,减少或消除各种可能影响科学的无关因素的干扰,在简化、纯化的状态下认识研究对象。第三,因果性。实验以发现、确认事物之间的因果联系的有效工具和必要途径。

文献研究法

文献研究法是根据一定的研究目的或课题,通过调查文献来获得资料,从而全面地、正确地了解掌握所要研究问题的一种方法。文献研究法被子广泛用于各种学科研究中。其作用有:①能了解有关问题的历史和现状,帮助确定研究课题。②能形成关于研究对象的一般印象,有助于观察和访问。③能得到现实资料的比较资料。④有助于了解事物的全貌。

实证研究法

实证研究法是科学实践研究的一种特殊形式。其依据现有的科学理论和实践的需要,提出设计,利用科学仪器和设备,在自然条件下,通过有目的有步骤地操纵,根据观察、记录、测定与此相伴随的现象的变化来确定条件与现象之间的因果关系的活动。主要目的在于说明各种自变量与某一个因变量的关系。

定量分析法

在科学研究中,通过定量分析法可以使人们对研究对象的认识进一步精确化,以便更加科学地揭示规律,把握本质,理清关系,预测事物的发展趋势。

定性分析法

定性分析法就是对研究对象进行“质”的方面的分析。具体地说是运用归纳和演绎、分析与综合以及抽象与概括等方法,对获得的各种材料进行思维加工,从而能去粗取精、去伪存真、由此及彼、由表及里,达到认识事物本质、揭示内在规律。

跨学科研究法

运用多学科的理论、方法和成果从整体上对某一课题进行综合研究的方法,也称“交叉研究法”。科学发展运动的规律表明,科学在高度分化中又高度综合,形成一个统一的整体。据有关专家统计,现在世界上有2000多种学科,而学科分化的趋势还在加剧,但同时各学科间的联系愈来愈紧密,在语言、方法和某些概念方面,有日益统一化的趋势。

个案研究法

个案研究法是认定研究对象中的某一特定对象,加以调查分析,弄清其特点及其形成过程的一种研究方法。个案研究有三种基本类型:(1)个人调查,即对组织中的某一个人进行调查研究;(2)团体调查,即对某个组织或团体进行调查研究;(3)问题调查,即对某个现象或问题进行调查研究。

功能分析法

功能分析法是社会科学用来分析社会现象的一种方法,是社会调查常用的分析方法之一。它通过说明社会现象怎样满足一个社会系统的需要(即具有怎样的功能)来解释社会现象。

数量研究法

数量研究法也称“统计分析法”和“定量分析法”,指通过对研究对象的规模、速度、范围、程度等数量关系的分析研究,认识和揭示事物间的相互关系、变化规律和发展趋势,借以达到对事物的正确解释和预测的一种研究方法。

模拟法(模型方法)

模拟法是先依照原型的主要特征,创设一个相似的模型,然后通过模型来间接研究原型的一种形容方法。根据模型和原型之间的相似关系,模拟法可分为物理模拟和数学模拟两种。

探索性研究法

探索性研究法是高层次的科学研究活动。它是用已知的信息,探索、创造新知识,产生出新颖而独特的成果或产品。

信息研究方法

信息研究方法是利用信息来研究系统功能的一种科学研究方法。美国数学、通讯工程师、生理学家维纳认为,客观世界有一种普遍的联系,即信息联系。当前,正处在“信息革命”的新时代,有大量的信息资源,可以开发利用。信息方法就是根据信息论、系统论、控制论的原理,通过对信息的收集、传递、加工和整理获得知识,并应用于实践,以实现新的目标。信息方法是一种新的科研方法,它以信息来研究系统功能,揭示事物
的更深一层次的规律,帮助人们提高和掌握运用规律的能力。

经验总结法

经验总结法是通过对实践活动中的具体情况,进行归纳与分析,使之系统化、理论化,上升为经验的一种方法。总结推广先进经验是人类历史上长期运用的较为行之有效的领导方法之一。

描述性研究法

描述性研究法是一种简单的研究方法,它将已有的现象、规律和理论通过自己的理解和验证,给予叙述并解释出来。它是对各种理论的一般叙述,更多的是解释别人的论证,但在科学研究中是必不可少的。它能定向地提出问题,揭示弊端,描述现象,介绍经验,它有利于普及工作,它的实例很多,有带揭示性的多种情况的调查;有对实际问题的说明;也有对某些现状的看法等。

数学方法

数学方法就是在撇开研究对象的其他一切特性的情况下,用数学工具对研究对象进行一系列量的处理,从而作出正确的说明和判断,得到以数字形式表述的成果。科学研究的对象是质和量的统一体,它们的质和量是紧密联系,质变和量变是互相制约的。要达到真正的科学认识,不仅要研究质的规定性,还必须重视对它们的量进行考察和分析,以便更准确地认识研究对象的本质特性。数学方法主要有统计处理和模糊数学分析方法。  

思维方法

思维方法是人们正确进行思维和准确表达思想的重要工具,在科学研究中最常用的科学思维方法包括归纳演绎、类比推理、抽象概括、思辩想象、分析综合等,它对于一切科学研究都具有普遍的指导意义。

系统科学方法

20世纪,系统论、控制论、信息论等横向科学的迅猛发展,为发展综合思维方式提供了有力的手段,使科学研究方法不断地完善。而以系统论方法、控制论方法和信息论方法为代表的系统科学方法,又为人类的科学认识提供了强有力的主观手段。它不仅突破了传统方法的局限性,而且深刻地改变了科学方法论的体系。这些新的方法,既可以作为经验方法,作为获得感性材料的方法来使用,也可以作为理论方法,作为分析感性材料上升到理性认识的方法来使用,而且作为后者的作用比前者更加明显。它们适用于科学认识的各个阶段,因此,我们称其为系统科学方法。

期待谷歌的Android平台G1手机

  1. 谷歌的Android平台与硬件无关,这意味着从理论上来说Android可以在苹果的iPhone上运行,同时这是否也意味着山寨机也可以跑Android?(这个悬念估计不久就会解开,我们相信广州深圳那边的天才们已经开始行动)。
  2. 高通公司提供芯片,公司将其MSM7201A解决方案与Android软件集成以实现Android软件的优化。MSM7201A是单芯片、双核的解决方案,可以提供高速数据处理功能、硬件加速多媒体功能、3D图形以及嵌入式多模3G移动宽带连接以实现完美的无线体验。
  3. 同时高通公司表示,还将与其它OEM厂商合作研发Android平台手机,此举旨在协助无线产业生态系统发展,满足手机用户日益增长的需求,也就意味着今后会推出的Google手机的还会包括摩托罗拉、三星以及传说中的华硕和索尼爱立信等厂商,手机样式将多样化。(山寨机有望么?)
  4. G1的外壳是塑料的,虽然我们觉得还可以,但很多人觉得不爽,显得不够档次嘛。摄像头没有闪光,没有自拍镜,手机按键会让很多大拇指人士略感痛苦,没有3.5mm耳机孔。
  5. G1数据服务的价格为每月25美元。179美元的身份使得G1售价比苹果iPhone低了足足20美元,但在短期内还无法撼动苹果的地位,毕竟140人民币不到的差价也不算多。

 

 

 

 

dedecms 副栏目频道列表无法调用数据的解决方法。

发表文章的时候把这个栏目设置为了主栏目,那么可以读取出列表,但是设置为副栏目后就读不出来东西了

 

修改文件include/inc_arclist_view.php,找到第163行代码,修改代码

$this->addSql .= " And (arc.typeid in ($idlist) Or arc.typeid2=’{$this->TypeID}’) ";

$this->addSql .= " And (arc.typeid in ($idlist) Or arc.typeid2 in ($idlist)) ";

editplus查找替换的正则表达式应用说明(附实例)

表达式 说明
\t        制表符.
\n        换行.
.        匹配任意字符.
|        匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".
[]        匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字.
[^]        匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非数字字符.
*        其左边的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+        其左边的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".
?        其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
^        其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行.
contentnbsp;       其左边的表达式被匹配在一行的结尾. 例如 "econtentquot; 仅仅匹配以 "e" 结尾的行.
()        影响表达式匹配的顺序,并且用作表达式的分组标记.
\        转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\".

语法集合一:

符号  功能
%     匹配行的开始 – 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。
$     匹配行尾 – 显示搜索字符串必须在行尾,但是在所选择的结果字符串中不包括任何行终止字符。
?     除了换行符以外匹配任何单个的字符
*     除了换行符匹配任何数量的字符和数字
+     前一字符匹配一个或多个,但至少要出现一个
++    前一字符匹配零个或多个,但至少要出现一个
^b    匹配一个分页
^p    匹配一个换行符(CR/LF)(段)(DOS文件)
^r    匹配一个换行符(CR 仅仅)(段)(MAC 文件)
^n    匹配一个换行符 ( LF 仅仅 )( 段 )( UNIX 文件 )
^t    匹配一个标签字符TAB
[]    匹配任何单个的字符,或在方括号中的范围
^{A^}^{ B^} 匹配表达式A或 B
^     重载其后的正规表达式字符
^(^)  括或标注为用于替换命令的表达式。

一个正则表达式最多可以有9个标注表达式, 按正规表达式的需要而定。
相应的替换表达式是 ^x , 替换范围x是1-9。例如:
If ^(h*o^) ^(f*s^) matches “hello folks”,
^2 ^1 would replace it with “folks hello”.

(hello folks 将被替换成 folks hello。)

注: ^ 是实际字符 ^不是Ctl + 键值。

正则表达式应用——删除空行   ^[ \t]*\n
表达式的分组使用()来标记. 表达式的分组可以被引用为 \0, \1, \2, \3, 等等. \0 表示被匹配的所有字符串. \1 表示被匹配的第一个分组, \2 表示第二个分组, 依此类推. 举例如下.

原文        查找         替换                 结果
abc     (ab)(c)        \0-\1-\2        abc-ab-c
abc     a(b)(c)        \0-\1-\2        abc-b-c
abc     (a)b(c)        \0-\1-\2        abc-a-c

【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444

希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg

解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多

注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。

【2】正则表达式应用——数字替换
希望把
asdadas123asdasdas456asdasdasd789asdasd
替换为:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd

在替换对话框里面,勾选“正则表达式”复选框;
在查找内容里面输入“[0-9][0-9][0-9]”,不含引号
“替换为:”里面输入“[\0\1\2]”,不含引号
范围为你所操作的范围,然后选择替换即可。

实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例
上面重复使用了“[0-9]”,表示连续出现的三个数字
“\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推
“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2其它”,则替换结果为:

asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd

功能增强(by jiuk2k):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 …
大家根据需要定制

相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下

【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345contentrdquo;
这里“contentrdquo;表示从行尾匹配

如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格

dedecms模板制作基础教程参考资料-功能模块对应的模板路径

dedecms,template模板文件于各功能模块的对应表

常用内容模型与default目录

首页模板 \templets\default\index.html
文章频道首页 \templets\default\index_article.htm
文章列表页 \templets\default\list_article.htm
文章内容页 \templets\default\article_article.htm
图集频道首页 \templets\default\index_image.htm
图集列表页 \templets\default\list_image.htm
图集内容页 \templets\default\article_image.htm
图集详细页面 \templets\plus\showphoto.htm
软件频道首页 \templets\default\index_soft.htm
软件列表页 \templets\default\list_soft.htm
软件内容页 \templets\default\article_soft.htm
软件最终下载页 \templets\plus\download_links_templet.htm
动画频道首页 \templets\default\index_flash.htm
动画列表页 \templets\default\list_flash.htm
动画内容页 \templets\default\article_flash.htm
产品频道首页 \templets\default\index_product.htm
产品列表页 \templets\default\list_product.htm
产品内容页 \templets\default\article_product.htm
分类信息频道首页 \templets\default\index_info.htm
分类信息列表页 \templets\default\list_info.htm
分类信息内容页 \templets\default\article_info.htm
分类信息搜索页 \templets\default\infosearch.htm
专题列表页 \templets\default\list_spec.htm
专题内容页 \templets\default\article_spec.htm

 

图书模块

图书首页 \templets\default\books_index.htm
图书列表页 \templets\default\books_list.htm
图书搜索页 \templets\default\books_search.htm
图书内容页 \templets\default\books_book.htm
小说章节内容页 \templets\default\books_story.htm
漫画章节内容页 \templets\default\books_photo.htm
vip章节内容页 \templets\default\book_member_err.htm

问答模块

问答首页 \ask\template\default\dede.htm
问答列表页 \ask\template\default\browser.htm
问答内容页 \ask\template\default\question.htm
问答提问页 \ask\template\default\post.htm
问答内容维护页 \ask\template\default\post.adopt.htm
\ask\template\default\post.extra.htm
\ask\template\default\post.upreward.htm
问答搜索结果页 \ask\template\default\search.htm
问答消

DedeCms V5.1 SP1无法调用副栏目数据BUG的解决方法

5.1升级SP1后出现自由标记Arclist不能列表副栏目的问题

分析如下DEDECMS的标签代码:

<!–{dede:arclist row=5 titlelen=100 orderby=’id’ typeid=’19′ type=’image.’ imgwidth=’106′ imgheight=’140′} –>

<!–{/dede:arclist} –>

其中typeid=” 变量的值19 如果是主栏目的话, 这里的5行数据 会正常的读库出来, 但是如果 这个id的值是附属栏目,(这里还是举例说明吧,以手机主题为例子,我们将手机主题分为 诺基亚手机主题  摩托手机主题 索爱手机主题 ……    但是又按主题的类型再分为 非主流手机主题 炫酷手机主题 ….  这里问题就出来了. 我们添加主题的时候,将可爱的rabbit兔兔 这个主题 放到索爱M608C系列 ID是4   但是我又要将他放到附属栏目"卡通可爱手机主题" ID 为19 中去.  这样一来. 如果我的ID19的栏目中 全部都只有这样的附属进来的数据,没有直接添加数据. 那么上面的DEDECMS标签就将无法返回数据.)

这里就清楚了 这个bug所在的问题了.,该Bug出现在SP1的include/inc/inc_fun_SpGetArcList.php文件中.

 

还得自己解决问题:将include/inc/inc_fun_SpGetArcList.php文件的103行的代码
    {
         $ridnum = count($reids);
         if($ridnum>1)
         {
             $sonids = ”;
           for($i=0;$i<$ridnum;$i++){
                 $sonids .= ($sonids==” ? TypeGetSunID($reids[$i],$dsql,’arc’,0,true) : ‘,’.TypeGetSunID($reids[$i],$dsql,’arc’,0,true));
           }
           $orwhere .= " And arc.typeid in ($sonids)  ";
         }else{
             $sonids = TypeGetSunID($typeid,$dsql,’arc’,0,true);
             $orwhere .= " And arc.typeid in ($sonids) ";
         }
         unset($reids);
    }

替换为下列代码
        {
         $ridnum = count($reids);
         if($ridnum>1)
         {
             $sonids = ”;
           for($i=0;$i<$ridnum;$i++){
                 $sonids .= ($sonids==” ? TypeGetSunID($reids[$i],$dsql,’arc’,0,true) : ‘,’.TypeGetSunID($reids[$i],$dsql,’arc’,0,true));
           }
           $orwhere .= " And ( arc.typeid in ($sonids) Or arc.typeid2 in ($sonids) ) ";
         }else{
             $sonids = TypeGetSunID($typeid,$dsql,’arc’,0,true);
             $orwhere .= " And ( arc.typeid in ($sonids) Or arc.typeid2 in ($sonids) ) ";
         }
         unset($reids);
     }

问题解决。

版权说明

 

 本文章ImFantasy 原创, 可随意转载, 但请注明出处, 并给连接! 谢谢 http://www.imfantasy.com.cn/post/dedecms-fulanmu-diaoyong.shtml