2012-12-13 219 views
0

我现在有一些文字是这样的:PHP分/爆炸

W. 50DateWorkSuggested breakTotalMondayTuesday11/1217:00-01:0020:30-21:157:15Wednesday12/1217:00-01:0019:00-19:457:15ThursdayFridaySaturday15/1216:00-23:0020:00-20:456:15Sunday16/1217:00-01:0021:00-21:457:15Total:28W. 51DateWorkSuggested breakTotalMonday17/1217:00-01:0019:00-19:457:15TuesdayWednesday19/1217:00-00:0021:00-21:456:15Thursday20/1223:00-07:0003:00-03:457:15Friday21/1223:00-07:0002:30-03:157:15SaturdaySundayTotal:28W. 52DateWorkSuggested breakTotalMondayTuesdayWednesdayThursdayFridaySaturdaySundayTotal:0W. 1DateWorkSuggested breakTotalMonday------Total:0 Total number of hours: 77:45 Schedule for Month: December

它最初看起来不同,但我已删除了html标签,因为它是所有表中,

我现在却想到溢出/爆炸此数据,以便在每行上那里有1天读取像:

Monday 10/12: 
Tuesday 11/12: 17:00 - 01:00 
Wednesday 12/12: 17:00 - 01:00 
Thursday 13/12: 
Friday 14/12: 
Saturday: 15/12: 16:00 - 23:00 

那是在第一周的例子,我曾尝试代码利柯:

preg_match_all (("/Monday|Tuesday|Wednesday|Thusday|Fiday|Saturday|Sunday/"), $content, $parts); 

    print_r ($parts); 

,但没有真正的运气不好,所以任何帮助,将不胜感激,

感谢,

杰克。

HTML标记的原始代码:

<body> <table border=0 class=blackborder cellpadding=2 cellspacing=2> 
<tr><td><table class=blackborder width=315><tr><td><b>W. 50</b></td><td><B>Date</B></td><td><B>Work</B></td><td><B>Suggested break</B></td><td><B>Total</B></td><tr><td></tr><tr><td>Monday</tr><tr><td>Tuesday<td>11/12</td><td>17:00-01:00</td><td>20:30-21:15</td><td>7:15</td></tr><tr><td>Wednesday<td>12/12</td><td>17:00-01:00</td><td>19:00-19:45</td><td>7:15</td></tr><tr><td>Thursday</tr><tr><td>Friday</tr><tr><td>Saturday<td>15/12</td><td>16:00-23:00</td><td>20:00-20:45</td><td>6:15</td></tr><tr><td>Sunday<td>16/12</td><td>17:00-01:00</td><td>21:00-21:45</td><td>7:15</td></td></tr><tr><td>Total:</td><td></td><td></td><td></td><td>28</td></tr></table></td><td><table class=blackborder width=315><tr><td><b>W. 51</b></td><td><B>Date</B></td><td><B>Work</B></td><td><B>Suggested break</B></td><td><B>Total</B></td><tr><td></tr><tr><td>Monday<td>17/12</td><td>17:00-01:00</td><td>19:00-19:45</td><td>7:15</td></tr><tr><td>Tuesday</tr><tr><td>Wednesday<td>19/12</td><td>17:00-00:00</td><td>21:00-21:45</td><td>6:15</td></tr><tr><td>Thursday<td>20/12</td><td>23:00-07:00</td><td>03:00-03:45</td><td>7:15</td></tr><tr><td>Friday<td>21/12</td><td>23:00-07:00</td><td>02:30-03:15</td><td>7:15</td></tr><tr><td>Saturday</tr><tr><td>Sunday</td></tr><tr><td>Total:</td><td></td><td></td><td></td><td>28</td></tr></table></td></tr><tr><td><table class=blackborder width=315><tr><td><b>W. 52</b></td><td><B>Date</B></td><td><B>Work</B></td><td><B>Suggested break</B></td><td><B>Total</B></td><tr><td></tr><tr><td>Monday</tr><tr><td>Tuesday</tr><tr><td>Wednesday</tr><tr><td>Thursday</tr><tr><td>Friday</tr><tr><td>Saturday</tr><tr><td>Sunday</td></tr><tr><td>Total:</td><td></td><td></td><td></td><td>0</td></tr></table></td><td><table class=blackborder width=315><tr><td><b>W. 1</b></td><td><B>Date</B></td><td><B>Work</B></td><td><B>Suggested break</B></td><td><B>Total</B></td><tr><td></tr><tr><td>Monday</td></tr><tr><td>-</td></tr><tr><td>-</td></tr><tr><td>-</td></tr><tr><td>-</td></tr><tr><td>-</td></tr><tr><td>-</td></tr><tr><td>Total:</td><td></td><td></td><td></td><td>0</td></tr></table> </td> </tr> <tr> <td colspan=2> <b>Total number of hours:</b> 77:45<br> </td> </tr> </table> </body> 
+4

它w如果你把它放在表格里面,并且只使用PHP的DOMDocument,那么它会更容易。http://us3.php.net/manual/en/class.domdocument.php –

+0

保留HTML标签。解析HTML比本文更容易。 – hakre

+0

我会告诉你代码与HTML标签1分 –

回答

1

以及我可以得到一个日期和时间的正则表达式

$str = 'W. 50DateWorkSuggested breakTotalMondayTuesday11/1217:00-01:0020:30-21:157:15Wednesday12/1217:00-01:0019:00-19:457:15ThursdayFridaySaturday15/1216:00-23:0020:00-20:456:15Sunday16/1217:00-01:0021:00-21:457:15Total:28W. 51DateWorkSuggested breakTotalMonday17/1217:00-01:0019:00-19:457:15TuesdayWednesday19/1217:00-00:0021:00-21:456:15Thursday20/1223:00-07:0003:00-03:457:15Friday21/1223:00-07:0002:30-03:157:15SaturdaySundayTotal:28W. 52DateWorkSuggested breakTotalMondayTuesdayWednesdayThursdayFridaySaturdaySundayTotal:0W. 1DateWorkSuggested breakTotalMonday------Total:0 Total number of hours: 77:45 Schedule for Month: December'; 
$ptr = "/(?P<day>:Monday|Tuesday|Wednesday|Thusday|Fiday|Saturday|Sunday?)(?P<time>([0-9:\/\- ]?)+)/"; 
preg_match_all($ptr, $str, $data); 
echo '<pre>'; 
print_r($data); 
echo '</pre>'; 

输出会是这样

Array 
(
    [0] => Array 
     (
      [0] => Tuesday11/1217:00-01:0020:30-21:157:15 
      [1] => Wednesday12/1217:00-01:0019:00-19:457:15 
      [2] => Saturday15/1216:00-23:0020:00-20:456:15 
      [3] => Sunday16/1217:00-01:0021:00-21:457:15 
      [4] => Tuesday 
      [5] => Wednesday19/1217:00-00:0021:00-21:456:15 
      [6] => Saturday 
      [7] => Sunday 
      [8] => Tuesday 
      [9] => Wednesday 
      [10] => Saturday 
      [11] => Sunday 
     ) 

    [day] => Array 
     (
      [0] => Tuesday 
      [1] => Wednesday 
      [2] => Saturday 
      [3] => Sunday 
      [4] => Tuesday 
      [5] => Wednesday 
      [6] => Saturday 
      [7] => Sunday 
      [8] => Tuesday 
      [9] => Wednesday 
      [10] => Saturday 
      [11] => Sunday 
     ) 

    [1] => Array 
     (
      [0] => Tuesday 
      [1] => Wednesday 
      [2] => Saturday 
      [3] => Sunday 
      [4] => Tuesday 
      [5] => Wednesday 
      [6] => Saturday 
      [7] => Sunday 
      [8] => Tuesday 
      [9] => Wednesday 
      [10] => Saturday 
      [11] => Sunday 
     ) 

    [time] => Array 
     (
      [0] => 11/1217:00-01:0020:30-21:157:15 
      [1] => 12/1217:00-01:0019:00-19:457:15 
      [2] => 15/1216:00-23:0020:00-20:456:15 
      [3] => 16/1217:00-01:0021:00-21:457:15 
      [4] => 
      [5] => 19/1217:00-00:0021:00-21:456:15 
      [6] => 
      [7] => 
      [8] => 
      [9] => 
      [10] => 
      [11] => 
     ) 

    [2] => Array 
     (
      [0] => 11/1217:00-01:0020:30-21:157:15 
      [1] => 12/1217:00-01:0019:00-19:457:15 
      [2] => 15/1216:00-23:0020:00-20:456:15 
      [3] => 16/1217:00-01:0021:00-21:457:15 
      [4] => 
      [5] => 19/1217:00-00:0021:00-21:456:15 
      [6] => 
      [7] => 
      [8] => 
      [9] => 
      [10] => 
      [11] => 
     ) 

    [3] => Array 
     (
      [0] => 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
      [5] => 
      [6] => 
      [7] => 
      [8] => 
      [9] => 
      [10] => 
      [11] => 
     ) 

) 

那么你就可以循环使数据更好;)

+0

似乎与我的代码一起工作,但即时通讯尝试与它实现$ str = htmlspecialchars($ html);并没有显示任何时间或日期只是名称 –

+0

(?P ([0-9] {1,2} \/[0-9] {1,2}))replcace用这个来抓周 – Kotzilla

+0

对不起,我的意思是它只显示我几天(星期一除外),也没有时间紧挨着它们中的任何一个......:S –