使用PHP重新排列HTML元素

时间:2012-11-19 13:52:24

标签: php html replace

我读到的RSS提要最近更新并搞砸了很多东西,我解决了大部分问题,但这是我无法想象的。

以前如何格式化日期:

<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”和“,”需要删除(使用str_replace很容易)
  3. 现在的问题是我可以在几分钟内用jQuery做到这一点但是它必须在用PHP完成才能保存,而且因为div没有class / id对我来说更难

2 个答案:

答案 0 :(得分:4)

您可以在PHP中使用strip_tags来获取日期,然后使用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>
";
?>

答案 1 :(得分:0)

无需为您编写实际代码,解决方案就是:

  • 使用DOM解析器获取所需信息(日期div内容);
  • 空格中的
  • explode;
  • (int)第一个号码和rtrim月份以摆脱逗号。

或者使用@ Darrrrrren的解决方案更好......