+ -
当前位置:首页 → 问答吧 → 正则循环截取输出问题

正则循环截取输出问题

时间:2011-08-27

来源:互联网


  1. $str='<a>dfg8sg786ds</a>
  2. <b>dfgd876fgdf</b>
  3. <c>2011-8-26 08:21:00</c>
  4. <a>dfgdf8774gfd</a>
  5. <b>luiliuil</b>
  6. <c>2011-8-26 11:21:00</c>
  7. <a>dfgd88fgfd</a>
  8. <b>luiliui993l</b>
  9. <c>2011-8-26 18:21:00</c>';
  10. preg_match_all('/<a>(.*?)<\/a>\s+<b>(.*?)<\/b>\s+<c>(.*?)<\/c>/',$str,$a);
  11. $num=count($a[1])-1;
  12. for ($i=0; $i<=$num; $i++) {
  13. $b="1. ".$a[1][$i]."<br/>2. ".$a[2][$i]."<br/>3. ".$a[3][$i];
  14. echo $b."<br/>";
  15. }
复制代码


以上显示为:

1. dfg8sg786ds
2. dfgd876fgdf
3. 2011-8-26 08:21:00
1. dfgdf8774gfd
2. luiliuil
3. 2011-8-26 11:21:00
1. dfgd88fgfd
2. luiliui993l
3. 2011-8-26 18:21:00

因小弟刚刚接触php,以上这段貌似php的垃圾是小弟胡乱写的,还望各位前辈勿笑!
我想请问各位前辈的是由于以上时间是服务器时间 和本地相差8小时 代码如何写才能给它们加上8小时时差变为以下时间显示?
小弟先谢谢各位前辈了!

1. dfg8sg786ds
2. dfgd876fgdf
3. 2011-8-26 16:21:00
1. dfgdf8774gfd
2. luiliuil
3. 2011-8-26 19:21:00
1. dfgd88fgfd
2. luiliui993l
3. 2011-8-27 02:21:00

作者: 超级小菜鸟   发布时间: 2011-08-27

$time_server = strtotime('2011-8-26 08:21:00');
echo date('Y-m-d H:i:s',$time_server + 8 * 3600);

作者: xdm1983   发布时间: 2011-08-28


$time_server = strtotime('2011-8-26 08:21:00');
echo date('Y-m-d H:i:s',$time_server + 8 * 3600);
xdm1983 发表于 2011-8-28 15:35


谢谢2楼前辈回答 但我不是1个时间 而是多个时间循环输出,怎么都加上那?

作者: 超级小菜鸟   发布时间: 2011-08-28

回复 超级小菜鸟


    思路错误。

你不应该在正则和字符串替换上下功夫,而是要在源头下功夫。
输出时为什么不输出正确的呢?这样不就没必要考虑这么多了嘛

作者: iminto   发布时间: 2011-08-28