Para el ";" solo tienes que agregar delimitadores de texto... claro que si en algun caso tienes dobles comillas dentro del texto tambien te dará problemas....
str_replace("\"","'",$r[X]) retornará las dobles comillas conveertidas en apostrofes
Código PHP:
Ver originalecho "\"".$r[0]."\";\"".$r[1]."\";\"".$r[2]."\";\"/dispal/components/com_foxcontact/uploads/".$r[3]."\";\"".$r[4]."\";\"".$r[5]."\";\"".$r[6]."\";\"".$r[7]."\"\n";
Si alguno de los campos es numerico puedes omitirlos...
En cuanto a la carta de presentación deberias substituir el salto de linea por otro caracter...
str_replace("\n","//",$r[5]) por ejemplo....