1 Pytanie
Jeżeli chodzi o skracanie tekstu. To nie wiem czy ci o to chodzi:
$song[1
]=substr($song[1
], 8
, 2
);
Spowoduje to z $song[1] pobierze od 8 znaku dwa znaki.
Tak więc jak chcesz mieć 20 pierwszych znaków to:
$song[1
]=substr($song[1
], 0
, 20
);
2. Pytanie
echo'<td>$tekst = "'.$song[1].'";</td>';
Co ty chcesz tu zrobić

Trochę błędów w jednym. Jeżeli chcesz nadać wartość zmiennej to musisz zamknąć echo. Ale chyba nie o to ci chodzi.
Ty chyba chcesz żeby wyświetliło ci $tekst i $song[1]
Tak wiec:
echo '<td>'. $tekst . $song[1]'</td>';
lub
echo '<td>'. $tekst .' '. $song[1]'</td>';
Napisz dokładnie o co ci chodzi.