2012-11-19 93 views
-1

我读到的RSS源最近更新并搞砸了很多东西,我修复了大部分问题,但是我无法确定。使用PHP重新排列HTML元素

如何日期以前格式化:

<div> 
    <div> 
     <div> 
      13 </div> 
    </div> 
</div> 
<div> 
    <div> 
     <div> 
      July </div> 
    </div> 
</div> 
<div> 
    <div> 
     <div> 
      2012 </div> 
    </div> 
</div> 

它是如何现在:

<div> 
    <div> 
     <div>13th July, 2012</div> 
    </div> 
</div> 

所以:

  1. 天月和年在自己的被分离DIV(最困难)
  2. 需要删除“th”和“,”(this很容易与str_replace函数)

现在的问题是,我可以在几分钟内使用jQuery做到这一点,但它必须是用PHP做会保存前,而且由于div的无级/ ID,它更对我来说很困难。

+0

你有什么这么远吗? – jeroen

+0

对于这个问题?没什么因为我无法想象如何区分这些。我已经修复的其他问题和str_replaces也没有问题。 – 3zzy

+1

难道你不能在PHP中使用'strip_tags'来获取日期,然后使用'strtotime'来标准化日期吗?然后你可以生成你想要的任何HTML。 – Darrrrrren

回答

4

您可以使用strip_tags在PHP中获得的日期,然后使用strtotime正常化的日期。

然后你可以生成任何你想要的HTML。

编辑:这里是您的解决方案:

<?php 
//at this point, $string = the input you wish to modify 
$string = " 
<div> 
    <div> 
     <div>13th July, 2012</div> 
    </div> 
</div> 
"; 

//get normalised time 
$time = strtotime(trim(strip_tags($string))); 

//with normalised time, generate your new output 
echo " 
<div> 
    <div> 
     <div> 
      ".date("d",$time)." </div> 
    </div> 
</div> 
<div> 
    <div> 
     <div> 
      ".date("F",$time)." </div> 
    </div> 
</div> 
<div> 
    <div> 
     <div> 
      ".date("Y", $time)." </div> 
    </div> 
</div> 
"; 
?> 
+0

+1最简单的解决方案 – jeroen

+0

我已经做了我现在拥有的是最好的输出 – 3zzy

+0

我编辑了我的答案,为您提供解决方案。 – Darrrrrren

0

没有写你的实际代码,一个解决办法是:

  • 使用DOM解析器来得到你需要(日期div内容)的信息;
  • explode上的空格字符;
  • (int)第一个数字和rtrim这个月摆脱了逗号。

或者使用@ Darrrrrren的解决方案,它是更好的方式...