par
moogli » 17 juin 2013, 10:41
je viens de tester ce code
<!doctype html>
<html>
<head>
<style type="text/css">
th, td {
border: 1px solid lightseagreen;
}
table {
border-collapse: collapse;
width: 90%;
margin: auto;
}
</style>
</head>
<?php
/**
* Created by JetBrains PhpStorm.
* User: laplace.g
* Date: 17/06/13
* Time: 10:12
* To change this template use File | Settings | File Templates.
*/
function convertDec($var) { // Sexagésimal vers décimal
$var = trim($var); // pour être sur de ne pas avoir de caractère "invisbible" qui traine
// le sens est indiqué par la lettre (pourrais être récupérée avec une expression régulière mais on est certain
// du format)
$sens = substr($var, -1);
$coord = substr($var,0, strlen($var)-1); // tout sauf la lettre ou aurais utiliser un str_replace.
list($degres, $rest) = explode(' ',$var);
list($minute, $seconde) = explode('.',$rest);
$result = $degres + ($minute / 60) + ($seconde / 3600);
if (strtoupper($sens) == 'S' || strtoupper($sens) == 'W' || strtoupper($sens) == 'O') {
$result *= -1;
}
return $result;
}
$positions = file('position.txt');
echo '<table>
<thead><tr><th>Sexa latitude</th><th>deci latitude</th><th>Sexa longitude</th><th>deci longitude</th></tr></thead>';
echo '<tbody>';
foreach ($positions as $position) {
xdebug_var_dump($position);
list($latitude, $longitude) = explode(',', $position);
$deci_latitude = convertDec(trim($latitude));
$deci_longitude = convertDec(trim($longitude));
echo '<tr>
<td>' . $latitude . '</td>
<td>' . $deci_latitude . '</td>
<td>' . $longitude . '</td>
<td>' . $deci_longitude . '</td>
</tr>';
}
echo '</tbody></table>';
?>
</html>
a priori c'est bon.
J'ai simplifier la chose, mais c'est très dépendant du format que tu va utiliser pour les coordonnées.
@+
je viens de tester ce code
[php]<!doctype html>
<html>
<head>
<style type="text/css">
th, td {
border: 1px solid lightseagreen;
}
table {
border-collapse: collapse;
width: 90%;
margin: auto;
}
</style>
</head>
<?php
/**
* Created by JetBrains PhpStorm.
* User: laplace.g
* Date: 17/06/13
* Time: 10:12
* To change this template use File | Settings | File Templates.
*/
function convertDec($var) { // Sexagésimal vers décimal
$var = trim($var); // pour être sur de ne pas avoir de caractère "invisbible" qui traine
// le sens est indiqué par la lettre (pourrais être récupérée avec une expression régulière mais on est certain
// du format)
$sens = substr($var, -1);
$coord = substr($var,0, strlen($var)-1); // tout sauf la lettre ou aurais utiliser un str_replace.
list($degres, $rest) = explode(' ',$var);
list($minute, $seconde) = explode('.',$rest);
$result = $degres + ($minute / 60) + ($seconde / 3600);
if (strtoupper($sens) == 'S' || strtoupper($sens) == 'W' || strtoupper($sens) == 'O') {
$result *= -1;
}
return $result;
}
$positions = file('position.txt');
echo '<table>
<thead><tr><th>Sexa latitude</th><th>deci latitude</th><th>Sexa longitude</th><th>deci longitude</th></tr></thead>';
echo '<tbody>';
foreach ($positions as $position) {
xdebug_var_dump($position);
list($latitude, $longitude) = explode(',', $position);
$deci_latitude = convertDec(trim($latitude));
$deci_longitude = convertDec(trim($longitude));
echo '<tr>
<td>' . $latitude . '</td>
<td>' . $deci_latitude . '</td>
<td>' . $longitude . '</td>
<td>' . $deci_longitude . '</td>
</tr>';
}
echo '</tbody></table>';
?>
</html>[/php]
a priori c'est bon.
J'ai simplifier la chose, mais c'est très dépendant du format que tu va utiliser pour les coordonnées.
@+