Opa!
Tá aí:
<table border="1">
<thead>
<th>PUBDPTO</th>
<th>Dt da Designação</th>
<th>Funcionário</th>
<th>Função</th>
</thead>
<tbody>
<?php
set_time_limit(60);
$file = 'nome-do-arquivo.txt';
$ptnPUB = '/[0-9]{3}\/[0-9]{4}/'; /* --- Resultado: 000/0000 --- */
$ptnDT = '/(([de]{2})\s)([0-9]{2})\/([0-9]{2})\/([0-9]{4})/';/* --- Resultado: "de 00/00/0000" --- */
$ptnNome = '/(([Ddesignar]){8}\s((([A-ZÀ-Ü]){2,})(\s)?()){5,})/';/* --- Resultado: "Chamar NOME SOBRENOME" ou "chamar NOME SOBRENOME" --- */
$ptnFuncao = '/(([para]{4}\s).*[.])/';/* --- Resultado: "para (...)" fim em ponto final --- */
$handle = fopen($file,'r');
if ($file == false) die('O arquivo não existe');
if ($handle) {
while (!feof($handle)) {
$content = fgets($handle);
preg_match($ptnPUB, $content, $resultsPUB);
preg_match($ptnDT, $content, $resultsDT);
preg_match($ptnNome, $content, $resultsNome);
preg_match($ptnFuncao, $content, $resultsFuncao);
echo ("<tr>");
echo ("<td>");
print($resultsPUB[0]);
echo ("</td>");
echo ("<td>");
print($resultsDT[0]);
echo ("</td>");
echo ("<td>");
print($resultsNome[0]);
echo ("</td>");
echo ("<td>");
print($resultsFuncao[0]);
echo ("</td>");
echo ("</tr>");
}
}
fclose($handle);
?>
</tbody>
</table>