WordPress如何更换域名

修改数据库配置文件,如果你在同一主机同一空间上更改域名,这步可以省掉,如果数据库不同,还得要打开wp-config.php将数据库配置正确才可以正常访问新域名

原始地址:http://jingyan.baidu.com/article/fdffd1f8e73607f3e98ca137.html

1、修改数据库配置文件,如果你在同一主机同一空间上更改域名,这步可以省掉,如果数据库不同,还得要打开wp-config.php将数据库配置正确才可以正常访问新域名。

 

2、更改博客的安装地址和博客地址,首先用phpmyadmin打开你的数据库,然后找到wp-options这个数据表,找到第一条记录也就是siteurl这条,还有第39条home,这两条将地址改成你更换后的最域名即可。只有完成这一步后,才可以顺利进入后台,否则即使你输入密码,也会自动跳转到原来的老域名。PHP My管理中选择数据库,—->点击 SQL 在输入栏中输入如下代码:
UPDATE wp_options SET option_value = replace( option_value, ‘http://老域名’, ’http://新域名’) WHERE option_name = ‘home’ OR option_name =’siteurl’ ;

 

change-domain-2

 

 

change-domain

 

 

3、修改文章内部所有的链接为新域名,相信大家在以前发表的文章中一定加了不少内链吧,域名更换了,老的内链也就没有意义了。此时得要将文章内链的旧域名修改为新域名。如果从后台文章编辑里一个一个找那是不现实的,方法有一个,通用phpmyadmin进入你所在的数据库,执行以下语句就可以把文章内的所有内链旧域名批量改为新域名:

 

UPDATE wp_posts SET post_content = replace(post_content, ‘http://老域名’, ‘http://新域名’);
UPDATE wp_posts SET guid = replace( guid, ‘http://老域名’ , ’http://新域名’ ) ;

 

4、好了进入后台用以前的账号密码登陆就好了。

信科院网站改版项目心得

首先要说一下改这个网站也没啥了不起的,很简单的html+css的操作,主要改一下配色,没有大的版面的改版。

当刘河老师说要用metro风格的时候我第一反应是想到了win8开始界面的各种颜色的方块的堆积,于是我也就在网站上这样开刀了,结果做出来,唯一的感觉就是不伦不类的感觉,把那种各种颜色的方块用到网站上的确不是很协调,毕竟信科院网站主要是为了发布各类信息专用的,所以文章列表比较多,而不是各种图片或者功能的展示。

然后借鉴了一些别的网站的metro的风格,总结如下:主色一般是淡蓝色,按钮是方块状的,icon图标大多为扁平化图标,并且颜色单一,要么主体颜色是蓝色然后背景是白色就要么主体是白色然后背景是蓝色;界面比较简洁,有统一的风格,没有不协调的广告,字体比较大,尤其是标题字体。

然后我就按照这类似的风格改了起来,实现起来并不复杂,但是需要用chrome找到不同的对象的style或者ID,然后去css样式表进行修改,比较浪费时间。

然后到今天早上也算是完工了,于是用刘河老师昨天网上给的ftp账号把模板传到了服务器,到这里遇到了一个大问题,这个服务器我用站长工具查看了一下,不得不说很垃圾,美国服务器,并且使用的是虚拟服务器,我觉得再怎么着用个国外的VPS也是应该的,也不知道校方是怎么考虑的,当然有的人只看到这个网站可以打开那就是没啥问题的(同理于12306.com),这个服务器上除了这个网站还挂了160多个网站,估计也没有啥后台(比如说cpanel)只能完全靠ftp上传下载文件。

现在说说我遇到的问题,模板传上去后并不会立即生效,当打开www.hankouu.com这个链接的时候发现还是用的原来的模板,在dedecms的后台里面更新缓存和一键更新都没起作用,于是我在自己这个博客的服务器上也上传了一个dedecms,然后删除default文件夹(模板目录),再冲浏览器打开时提示没有模板目录,于是我将自己改好的模板,也就是给学校改的这个模板传上去,,刷新网页时就立即显示了出来,这也没有在dedecms的后台更新什么东西啊,于是我想这应该是服务器的问题,现在我只有ftp的账号只能删除文件或者上传文件的权限,不能对服务器进行管理。搞来搞去还真是蛋疼。

只好等晚上看刘河怎么搞了。

最后截图一张(本地没有图片,所以文章内图片没显示),或者你也可以点击这里www.hankouu.com

screenshot

Update:

之所以出现这种情况原来是刘河老师给网站添加了cdn的缘故,也算是缓存那么回事,结果他一下就弄好了,以前对CDN不算了解,乘此机会可以好好了解一下。

wordpress模板开发手册

写这篇文章只是为了记录自己写一个模板的经验,并且分享给来我博客的朋友,本博文将会不断更新。

 

所需文件:

1、style.css:必须要有本文件,调用的方式为


,用上面的这段话就加到标签可以调用css文件了,以后写css就都写在这个文件,一般不适用绝对路径或者相对路径来调用css文件。

2、index.php:必须有,规定模板的主页。

3、header.php:非必须,主要写从网页顶部的代码,包括<head>以及博客顶部的部分,然后在index.php中调用header.php文件。

4、functions.php:函数文件,所有的php函数的集结地。

C语言里->和点号.的区别

这两个符号都是用来取结构体成员的值的。

如果使用->,那前面一定是指针,比如p->age这样就说明p是一个指针,当然(*p).age和p->是等价的。

如果使用.符号,那前面可能是指针,也可能就是结构体变量的名称,因为结构体变量只能用点符号,而指针两种符号都可以用

dedecms全站伪静态的实现方法及注意事项

点评:DEDECMS为什么要用伪静态?不是有一个现成生成html功能,直接用它不就省事啊

成都SEO告诉你,用系统自带生成静态的麻烦事情很多,特别是文章多了,更新一点东西之类的就很是麻烦。所以成都SEO建议,大家如果能用伪静态就都用伪静态吧!一劳永逸的事情,以后不用再给大批量的更新而烦恼了。在此分享一下DEDECMS实现频道|列表页|文章页|TAG伪静态的方法,希望朋友们在有需要的时候能用上吧!

开启伪静态的前提条件
保证你的空间或服务器支持伪静态即URL重写
开启DedeCms伪静态

开启伪静态的方法:后台–》系统–》核心设置 找到:是否使用伪静态: 选择是 确定保存。
栏目和文章发布设置
栏目列表选项: 选择使用动态页 发布选项: 选择仅动态浏览
DEDECMS全站伪静态方法
首页伪静态
把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页。
频道、列表、文章伪静态
主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V5.3、DedeCms V5.5和DedeCms V5.6版本,打开/include/channelunit.func.php进行修改。注意:DedeCms V5.7,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可。
a.将GetFileName()中的如下代码:
//动态文章
if($cfg_rewrite == ‘Y’)
{
return $GLOBALS[“cfg_plus_dir”].”/view-“.$aid.’-1.html’;
}
替换为
//动态文章
if($cfg_rewrite == ‘Y’)
{
return “/archives/view-“.$aid.’-1.html’;
}
将文章页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html,这个随个人喜欢,不作更改也行。
b.将GetTypeUrl()中的如下代码:
//动态
$reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;
替换为
//动态
$reurl = “/category/list-“.$typeid.”.html”;
这步必须修改,即让你的频道或是列表页URL变更为/category/list-1.html形式。
列表分页伪静态
打开/include/arc.listview.class.php,找到获取动态的分页列表GetPageListDM()函数末尾处:
$plist = str_replace(‘.php?tid=’, ‘-‘, $plist);
替换为
$plist = str_replace(‘plus’, ‘category’, $plist);//将默认的plus替换成category$plist = str_replace(‘.php?tid=’, ‘-‘, $plist);将列表分页默认链接格式/plus/list-1-2-1.html修改为/category/list-1-2-1.html,这步也可以不作更改。
DEDECMS文章分页伪静态
打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:
$PageList = str_replace(“.php?aid=”,”-“,$PageList);
替换为
$plist = str_replace(‘plus’, ‘archives’, $plist);//将默认的plus替换成archives$PageList = str_replace(“.php?aid=”,”-“,$PageList);这步不作修改也可以,只是个人喜好问题。
TAG标签伪静态
DedeCms默认的TAG标签URL,形如/tags.php?/dedecms5.7/,非常之难看。打开/include/taglib/tag.lib.php,找到lib_tag()函数下的:
$row[‘link’] = $cfg_cmsurl.”/tags.php?/”.urlencode($row[‘keyword’]).”/”;
替换为
$row[‘link’] = $cfg_cmsurl.”/tags/”.urlencode($row[‘keyword’]).”/”;到这里,TAG标签URL中的“.php?”号就去掉了。
搜索伪静态
DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的URL就特麻烦,伪静态规则匹配复杂。小拼就偷下懒,将搜索URL中“search.php?…”直接替换为“search.html?…”,至于“?”号之后的参数以任意字符进行匹配。
依次打开include文件夹下的channelunit.func.php、arc.searchview.class.php、arc.taglist.class.php以及/include/taglib/hotwords.lib.php,查找“search.php?”替换为“search.html?”即可。

注意事项

以上都是需要伪静态的地方。值得注意的一点是:在进行任何一步的操作之前先将文档都进行备份,以防万一。以上方法也不是我原创的,纯属网络上搜集的。实践过,都能用的哈。如果有问题可以给我留言,修正不对的地方,但很有可能是你的操作失误哈,这些伪静态的到5.7版本都可以用。

算法的时间复杂度(计算实例)

原文链接:https://blog.chinaunix.net/uid-20490872-id-1665370.html

定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。

当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。

我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。大O表示只是说有上界,由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们在表示的时候一般都习惯表示前者。

此外,一个问题本身也有它的复杂性,如果某个算法的复杂性到达了这个问题复杂性的下界,那就称这样的算法是最佳算法。

“大O记法”:在这种描述中使用的基本参数是 n,即问题实例的规模,把复杂性或运行时间表达为n的函数。这里的“O”表示量级 (order),比如说“二分检索是 O(logn)的”,也就是说它需要“通过logn量级的步骤去检索一个规模为n的数组”记法 O ( f(n) )表示当 n增大时,运行时间至多将以正比于 f(n)的速度增长。

这种渐进估计对算法的理论分析和大致比较是非常有价值的,但在实践中细节也可能造成差异。例如,一个低附加代价的O(n2)算法在n较小的情况下可能比一个高附加代价的 O(nlogn)算法运行得更快。当然,随着n足够大以后,具有较慢上升函数的算法必然工作得更快。

O(1)

Temp=i;i=j;j=temp;

以上三条单个语句的频度均为1,该程序段的执行时间是一个与问题规模n无关的常数。算法的时间复杂度为常数阶,记作T(n)=O(1)。如果算法的执行时 间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)。

O(n^2)

2.1. 交换i和j的内容
sum=0;                 (一次)
for(i=1;i<=n;i++)       (n次 )
for(j=1;j<=n;j++) (n^2次 )
sum++;       (n^2次 )
解:T(n)=2n^2+n+1 =O(n^2)

2.2.
for (i=1;i<n;i++)
{
y=y+1;         ①
for (j=0;j<=(2*n);j++)
x++;        ②
}
解: 语句1的频度是n-1
语句2的频度是(n-1)*(2n+1)=2n^2-n-1
f(n)=2n^2-n-1+(n-1)=2n^2-2
该程序的时间复杂度T(n)=O(n^2).

O(n)

2.3.
a=0;
b=1;                      ①
for (i=1;i<=n;i++) ②
{
s=a+b;    ③
b=a;     ④
a=s;     ⑤
}
解: 语句1的频度:2,
语句2的频度: n,
语句3的频度: n-1,
语句4的频度:n-1,
语句5的频度:n-1,
T(n)=2+n+3(n-1)=4n-1=O(n).

O(log2n )

2.4.
i=1;       ①
while (i<=n)
i=i*2; ②
解: 语句1的频度是1,
设语句2的频度是f(n),   则:2^f(n)<=n;f(n)<=log2n
取最大值f(n)= log2n,
T(n)=O(log2n )

O(n^3)

2.5.
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
for(k=0;k<j;k++)
x=x+2;
}
}
解:当i=m, j=k的时候,内层循环的次数为k当i=m时, j 可以取 0,1,…,m-1 , 所以这里最内循环共进行了0+1+…+m-1=(m-1)m/2次所以,i从0取到n, 则循环共进行了: 0+(1-1)*1/2+…+(n-1)n/2=n(n+1)(n-1)/6所以时间复杂度为O(n^3).

我们还应该区分算法的最坏情况的行为和期望行为。如快速排序的最 坏情况运行时间是 O(n^2),但期望时间是 O(nlogn)。通过每次都仔细 地选择基准值,我们有可能把平方情况 (即O(n^2)情况)的概率减小到几乎等于 0。在实际中,精心实现的快速排序一般都能以 (O(nlogn)时间运行。
下面是一些常用的记法:

访问数组中的元素是常数时间操作,或说O(1)操作。一个算法如 果能在每个步骤去掉一半数据元素,如二分检索,通常它就取 O(logn)时间。用strcmp比较两个具有n个字符的串需要O(n)时间 。常规的矩阵乘算法是O(n^3),因为算出每个元素都需要将n对 元素相乘并加到一起,所有元素的个数是n^2。
指数时间算法通常来源于需要求出所有可能结果。例如,n个元 素的集合共有2n个子集,所以要求出所有子集的算法将是O(2n)的 。指数算法一般说来是太复杂了,除非n的值非常小,因为,在 这个问题中增加一个元素就导致运行时间加倍。不幸的是,确实有许多问题 (如著名 的“巡回售货员问题” ),到目前为止找到的算法都是指数的。如果我们真的遇到这种情况, 通常应该用寻找近似最佳结果的算法替代之。