昨天解决了博客从z-blog改为wordpress之后,url变更,导致从搜索引擎过来的用户,无法看到正确的文章,没有读过的读者可以点击这里阅读。但使用strpos的方法实在有些业余,怎么办?本着it人的执着求知精神,虽然我不曾学过php,但也要赶鸭子上架,来个霸王硬上弓,嘿嘿,不就是一php中的正则么,难不倒咱,外事问google,内事问百度,万事问老婆,哈哈,咱一边搜一边学一边写,结果成功使用正则搞定。
其实正则我还是有些熟的,只不过在php中的正则与javascript/c#等不太一样,而且对函数和php的写法也不了解,但找找google百度,还是可以成功解决的,这充分说明了语言只不过是一件工具,重要的是编程的思路与经验,有兴趣的朋友,可以看看我写的文章写给新入IT的新人们
$url = '/catalog.asp?date=2006-3-5&page=1'; //匹配原来文章的url if(preg_match('/\/post\/(\d+)\.html/is', $url, $arr)) { //新旧id对应 $newIds = array(1=>'685',2=>'686',3=>'687'); //找到新的id,如果没有新的id,则可以直接访问主页 $url = 'http://iove.net/'.$newIds[$arr[1]]; } //匹配包括tag的地址 elseif(preg_match('/\/catalog\.asp\?tags=(.+)/is', $url, $arr)) { $url = 'http://iove.net/?tag='.$arr[1]; } //匹配日期 elseif(preg_match('/\/catalog\.asp\?date=(\d+)-*(\d)*-*(\d)*/is', $url, $arr)) { $url = 'http://iove.net/date/'.$arr[1]; //如果包括月,则添加月份 if(!empty($arr[2])) { $url = $url.'/'.$arr[2]; } //如果包括天,则添加天 if(!empty($arr[3])) { $url = $url.'/'.$arr[3]; } } else { //如果都没有找到,就转向随机页 $url = 'http://iove.net/random'; } $url = 'Location:'.$url; header('HTTP/1.1 301 Moved Permanently'); header($url);
本文来自涂雅[http://iove.net/],原文链接:http://iove.net/archives/1046.html,网站转载请注明来源于涂雅并保留原文链接,否则视为侵权。
嗯,或者你也可以收听我的微博,腾讯微博(主要用这个,其他的看我的个人介绍)
我写博客常常出现错别字,常常错得还很离谱,有时候我自己看了第二遍都骂我自个儿,但我又不习惯重复审查,纠结啊...各位看到啥错别字或者不明白的地方,请给我留言指出来,感谢感谢。
gmail.com
最新评论