今天中午休息的时候忽然写了几段代码解决了主页上的两个久未解决的 PHP 问题。 1、主页抓 rss,抓不住 pubDate,抓耳挠腮估计有三个星期解决不了,看了好多代码改了好多次,今天一拍脑袋,怕不是大小写问题吧?把 pubDate 改成 pubdate 以后立马解决了,愚蠢啊……
//RSS funciton function rssoutput($feedaddress) { $rssfeed = array($feedaddress); //header('Content-Type:text/html;charset= UTF-8'); for($i=0;$i<sizeof($rssfeed);$i++){ $buff = ""; $rss_str=""; //打开 rss 地址,并读取,读取失败则中止 $fp = fopen($rssfeed[$i],"r") or die("can not open $rssfeed"); while ( !feof($fp) ) { $buff .= fgets($fp,4096); } //关闭文件打开 fclose($fp); //建立一个 XML 解析器 $parser = xml_parser_create(); //xml_parser_set_option -- 为指定 XML 解析进行选项设置 xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); //xml_parse_into_struct -- 将 XML 数据解析到数组 $values 中 xml_parse_into_struct($parser,$buff,$values,$idx); //xml_parser_free -- 释放指定的 XML 解析器 xml_parser_free($parser); foreach ($values as $val) { $tag = $val["tag"]; $type = $val["type"]; $value = $val["value"]; //标签统一转为小写(忘了这茬儿,搞了三星期) $tag = strtolower($tag); if ($tag == "item" && $type == "open"){ $is_item = 1; }else if ($tag == "item" && $type == "close") { //构造输出字符串 $rss_str .= "<li class='first'><a href='".$link."' title='".$description; $rss_str .= "' target=_blank>".$title."</a> (".$pubDate.")</li>"; $is_item = 0; } //仅读取 item 标签中的内容 if($is_item==1){ if ($tag == "title") {$title = $value;} if ($tag == "link") {$link = $value;} if ($tag == "pubdate") //就是这里这个 pub_D_ate 啦! </span> { $pubDate = date('Y-m-d',strtotime($value)); } if ($tag == "description") {$description = substr_cut($value);} } } //输出结果 echo $rss_str."<br />"; } } ?>
2、本来在页脚用 Javascript 写了小函数,可以显示 2005-2010(今年)和 Last modified:2010-12-29,但是 js 的最大问题是浏览器兼容性,在 IE 正常了在 Firefox 不正常,花了一番功夫写了两段判断函数,发现在 Google Chrome 里显示 “Nah”(无),到了 Opera 更是直接不显示了……今天趁着改写上面代码成功的东风一鼓作气,轻松写了两句 PHP 就彻底的搞定了日期问题,不能不感慨 PHP 的强大。代码共享:
<?php //设置 Locale,其实在本段没什么用 setlocale(LC_TIME, "zh_CN"); //设置默认时区,只在 PHP 5.1 开始后才有用。为啥要设,因为你的主机搞不好就在米国。这里设置为上海。 //注意:UTC 时区是没有 Asia/Beijing 的!只有 Asia/Shanghai 和 Asia/Chongqing!看来美国人还是搞的 //从前那一套哇。北京杯具了 date_default_timezone_set('Asia/Shanghai'); $today = date('Y'); echo "(C) 2005 - "; echo $today; echo ' <a href="">http://synyan.net</a> All rights reserved. '; echo "Last modified: " . date ("Y-m-d H:i:s", getlastmod()) ." UTC+8."; ?>
效果:

技术贴。。。
@ric83311 很有用的,呵呵。这个代码蛮好用的,而且经过我修改后哪里都能用,且不需要 wordpress 核心
@Yang 农哈节棍,我负责膜拜就好
@ric83311
啊有这么夸张
@老虎
这种模板啦,语言啦,曾经刚毕业的我还有心想弄,现在最好都是现成的,我往里填博文照片就好
@ric83311
有啊 wordpress.com 里面就有很多
虎哥,越搞越迷糊了
这个 RSS funciton 究竟是复制到 wordpress 的哪个文件?是 index.php 还是 function.php?可以详细说说怎么用吗
@Ryu 井 都可以。我是在首页单独做了一个静态 php 页面。本函数放在静态页面里,用<?php > 框起来。