2012-11-19 89 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的解決方案,它是更好的方式...