Ahora mismo se me ocurre esto, para intentar mantener un poco la escrutura de lo que pones tu:
Código PHP:
$numlinea = 20;
$lineas = file("datos.php") ;
foreach ($lineas as $nLinea => $dato)
{
if ($nLinea != $numlinea )
$info[] = $dato ;
}
$documento = implode($info, '');
file_put_contents('datos.php', $documento);
Y tal como te dicen, con esta estructura, la primera linea es la 0, no la 20 , por lo que si quieres borrar la 20, tendrias que borrar la 19