2014-02-20 6 views
0

Я пытаюсь вытащить каждый td-элемент из таблицы html ниже и импортировать каждый элемент в свою собственную ячейку в файле CSV.Преобразование таблицы HTML в CSV через PHP

Вот два HTML таблица:

<table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor="#006699"> 
<tr align="center" class="tableRow1Font"> 
<td width="7%">WAITLIST</td> 
<td width="5%">91630</td> 
<td width="11%"> 
ACCY <A HREF="http://www.gwu.edu/~bulletin/ugrad/accy.html#2001" target="_blank">2001</A> 
</td> 
<td width="5%">10</td> 
<td width="16%">Intro Financial Accounting</td> 
<td width="6%">3.00</td> 
<td width="8%"> Zou, Y</td> 
<td width="8%"><A HREF="http://www.gwu.edu/~map/building.cfm?BLDG=DUQUES" target="_blank" 
>DUQUES</a> 251</td> 
<td width="13%">TR<br>09:35AM - 10:50AM</td> 
<td width="14%"> 
01/13/14 - 04/28/14 
</td> 
<td width="7%"> 
</td> 
</tr> 
</table> 

<table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor="#006699"> 
<tr align="center" class="tableRow2Font"> 
<td width="7%">WAITLIST</td> 
<td width="5%">90003</td> 
<td width="11%"> 
ACCY <A HREF="http://www.gwu.edu/~bulletin/ugrad/accy.html#2001" target="_blank">2001</A> 
</td> 
<td width="5%">11</td> 
<td width="16%">Intro Financial Accounting</td> 
<td width="6%">3.00</td> 
<td width="8%"> Zou, Y</td> 
<td width="8%"><A HREF="http://www.gwu.edu/~map/building.cfm?BLDG=DUQUES" target="_blank" 
>DUQUES</a> 254</td> 
<td width="13%">TR<br>11:10AM - 12:25PM</td> 
<td width="14%"> 
1/13/14 - 04/28/14 
</td> 
<td width="7%">          
</td> 
</tr> 
</table> 

Я написал код, который идет через таблицу и вытягивает TD элементов:

foreach($html->find('tr[align=center] td') as $e) 
    $str .= strip_tags($e->innertext) . ', '; 
    echo $str; 

Так как я могу извлечь эти элементы в CSV файл? В Excel я хочу, чтобы это выглядело, как это с каждым элементом тд в свою ячейку, начиная новую строку для каждого HTML таблицы:

WAITLIST 91630 ACCY 2001 10 Intro Financial Accounting 3.00 Zou, Y DUQUES 251 TR 
WAITLIST 90003 ACCY 2001 11 Intro Financial Accounting 3.00 Zou, Y DUQUES 251 TR 
+0

Вы заглянули в [fputcsv] (http://www.php.net/fputcsv)? –

ответ

0

CSV означает значения, разделенные запятыми. Таким образом, по мере того, как вы выходите из этих данных (после запуска через вашу функцию, чтобы удалить теги <td>), поместите запятые между каждой частью данных (ячейкой) и новой строкой, в которой вы хотите запустить следующую строку.

Так использовать ваш пример выше, он должен выглядеть следующим образом:

WAITLIST,91630,ACCY,2001,10,Intro Financial Accounting,3.00,Zou,Y,DUQUES,251,TR 
WAITLIST,90003,ACCY,2001,11,Intro Financial Accounting,3.00,Zou,Y,DUQUES,2, 

Имейте в виду, что, когда вы echo это, вы не должны иметь какие-либо другие HTML-теги или что-нибудь.

+0

Также необходимо изучить некоторые [требования] (http://creativyst.com/Doc/Articles/CSV/CSV01.htm). У меня было много трудностей при создании простейших CSV только для того, чтобы найти, что большинство приложений слишком разборчивы –

2

Для этого существует библиотека. Перейти к началу страницы http://phpexcel.codeplex.com/. Загрузите zip-файл, и в примере вы найдете 17html.php, попробуйте этот код. Я надеюсь, это поможет.

Смежные вопросы