Ответов: 2 Просмотров: 1923
|
У меня есть php-скрипт, который, будучи запрошенным через браузер, отдает GPX-файл. Но некоторые навигаторы не могут прочитать получившийся файл потому что там используется UTF-8 с BOM. Как сделать так, чтобы генерировался файл с кодировкой UTF-8 without BOM?
PHP:
скопировать код в буфер обмена
<?PHP include '../engine/config.php'; $query = "SELECT * FROM $table"; $result = $conn->prepare($query); $result->execute(); $result->setFetchMode(PDO::FETCH_ASSOC); $gpx = array('<?xml version="1.0" encoding="UTF-8"?>'); $gpx[] = '<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">'; $gpx[] = '<metadata><name>map</name></metadata>'; $id=1; while ($row = $result->fetch()) { $gpx[] = '<wpt lat="'.$row['lat'].'" lon="'.$row['lng'].'">'; $gpx[] = '<name><![CDATA['.$row['name'].']]></name>'; $gpx[] = '<cmt><![CDATA['.$row['team'].']]></cmt>'; $gpx[] = '<desc><![CDATA['.$row['team'].']]></desc>'; $gpx[] = '</wpt>'; $id = $id+1; } // End XML file $gpx[] = '</gpx>'; $gpxOutput = join("\n", $gpx); header('Content-Disposition: attachment; filename="map.gpx"'); echo $gpxOutput; $conn = null; ?>
|