fix: evitar que <?xml rompa PHP con short_open_tag

El parser de PHP interpreta <? en HTML mode cuando short_open_tag=On.
Se rompe la cadena para que no aparezca el literal <? en el archivo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-24 10:14:04 -05:00
co-authored by Claude Sonnet 4.6
parent 5400fd9b32
commit e93bb1ad41
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -1616,7 +1616,7 @@ async function ffExportarExcel() {
});
const xlsEsc = v => String(v).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
const toCell = v => `<Cell><Data ss:Type="String">${xlsEsc(v)}</Data></Cell>`;
const xml = `<?xml version="1.0" encoding="UTF-8"?>\n<?mso-application progid="Excel.Sheet"?>\n`
const xml = '<' + '?xml version="1.0" encoding="UTF-8"?>\n<' + '?mso-application progid="Excel.Sheet"?>\n'
+ `<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">`
+ `<Worksheet ss:Name="Domicilios"><Table>\n`
+ csvRows.map(r => `<Row>${r.map(toCell).join('')}</Row>`).join('\n')
+2 -2
View File
@@ -209,8 +209,8 @@ if ($tipo) {
header('Pragma: no-cache');
$esc = fn($v) => htmlspecialchars((string)$v, ENT_XML1, 'UTF-8');
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<?mso-application progid="Excel.Sheet"?>' . "\n";
echo '<' . '?xml version="1.0" encoding="UTF-8"?' . '>' . "\n";
echo '<' . '?mso-application progid="Excel.Sheet"?' . '>' . "\n";
echo '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"' . "\n";
echo ' xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">' . "\n";
echo '<Worksheet ss:Name="Reporte"><Table>' . "\n";