Pracuję nad projektem, który wymaga konwersji e-maili HTML na tekst. Poniżej jest uproszczoną wersją kodu HTML:Konwertuj tabelę HTML na tekst
<table>
<tr>
<td width="10%"></td>
<td width="60%"> test product </td>
<td width="20%">5</td>
<td width="10%"> £50.00 </td>
</tr>
<tr>
<td></td>
<td colspan="3" width="100%"> Project Name: Test Project </td>
</tr>
<tr>
<td width="10%"> </td>
<td colspan="2" width="80%"> Page 1 : 01 New York 1.jpg </td>
<td width="10%"> £0.00 </td>
</tr>
</table>
Oczekiwany rezultat powinien wyglądać w pliku tekstowym (z kolumny ustawione ładnie):
test product 5 £50.00
Project Name: Test Project
Page 1 : 01 New York 1.jpg £0.00
Mój pomysł jest analizowanie zawartości HTML przez DOMDocument. Wtedy ustawiania zadanej szerokości na stole (tj .: 100 miejsc), a następnie konwersję szerokość każdej kolumnie z% do szeregu pomieszczeń (na colspan
& width
atrybutu <td>
tag). Następnie odejmę te kolumny o szerokości strlen
danych w każdej kolumnie, aby zarchiwizować liczbę pól, które muszę wprowadzić, pad_right do ciągu, aby wszystko wyrównać w pionie.
pracuję w ten sposób, nie zostało zarchiwizowane, co chcę, ale po prostu zastanawiasz się, czy jest głupi czy ktoś zna lepszy sposób proszę mi pomóc.
Również jeśli chodzi o języki Wielobajtowe (japoński, koreański itp.) ... nie sądzę, że moje podejście zadziała, ponieważ ich postacie będą większe niż jedna przestrzeń i skończy się bałagan.
Czy ktoś może mi pomóc?
Może to działać tylko wtedy, gdy tekst jest wyświetlany czcionką o stałej szerokości. – Roman
Huh? Multibajt nie (nie powinien) zabiera więcej spacji do pliku txt. – PeeHaa
Co zrobisz, jeśli kolumna będzie szersza niż oczekiwana? –