Aiuto per problema stringa

dibdaniele

Nuovo Utente
5 Feb 2009
1
0
0
Salve a tutti, mi chiamo Daniele ed è il mio primo post.

Spero che qualcuno di voi mi possa aiutare. Ho una pagina in htm, dove gli utenti dovrebbero copiare il seguente testo tipico:
codice PHP:

HTML:
Computed route from PALERMO/PUNTA RAISI (LICJ, LI) to ROMA/FIUMICINO (LIRF, LI): 9 fixes, 238.8 nautical miles

Cruise altitude between FL290 and FL390
LICJ (0.0nm) -SID-> LURON (40.7nm) -UM726-> DORAS (85.2nm) -UM726->
BEROL (121.6nm) -UM726-> ENSOT (141.4nm) -UM726-> PNZ (164.1nm) -UM726->
CIRCE (190.1nm) -UM726-> LAT (204.6nm) -STAR-> LIRF (238.8nm)

Details:

ID      FREQ   TRK   DIST   Coords                       Name/Remarks
LICJ             0      0   N38°10'55.00" E013°05'58.00" PALERMO/PUNTA RAISI
LURON            1     41   N38°51'32.00" E013°06'57.00" LURON
DORAS          356     45   N39°35'56.00" E013°03'36.00" DORAS
BEROL          356     36   N40°12'17.00" E013°00'47.00" BEROL
ENSOT          356     20   N40°32'00.00" E012°59'15.00" ENSOT
PNZ     114.6  356     23   N40°54'42.70" E012°57'26.70" PONZA
CIRCE           13     26   N41°20'00.00" E013°05'00.00" CIRCE
LAT     111.2  329     15   N41°32'28.00" E012°55'05.00" LATINA
LIRF           297     34   N41°48'01.00" E012°14'20.00" ROMA/FIUMICINO

Tracks are magnetic, distances are in nautical miles. LICJ SID LURON UM726 LAT STAR LIRF
il codice htm della pagina è questa:
Citazione:

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nuova pagina 1</title>
<style>
body { font-family: Calibri, Times New Roman; font-size: 12; background:#FFFFFF; color:#005BAB; line-height:6px }
p { font-family: Calibri, Times New Roman; font-size: 12; background:#FFFFFF; color:#005BAB; line-height:6px; font-weight:bold }
input { font-family: Calibri, Times New Roman; font-size: 12; background:#FFFFFF; color:#F47320; line-height:6px; font-weight:bold }
</style>
</head>
<body>
<form ACTION="generazione_piani_di_volo3.php" METHOD=POST target="inferiore1">
<p>Copy here routefinder text:<br>
<textarea name='routefinder' rows=30 cols=120>Search the route in routefinder</textarea></p>
<input type="submit" value="Go to phase 3" name="b">            <input type="reset" value="Reset">
</body>
</html>

E inserirlo in una pagina che prelevi opportunamente i dati e in particolare ottenere degli array fatti in questa maniera:

Array[1] = LICJ 0 0 N38°10'55.00" E013°05'58.00" PALERMO/PUNTA RAISI
Array[2] = LURON 1 41 N38°51'32.00" E013°06'57.00" LURON
Array[2] = DORAS 356 45 N39°35'56.00" E013°03'36.00" DORAS
e cosi via.

il codice php che elabora i dati è il seguente:
codice PHP:

PHP:
<?php

$routefinder=nl2br($_REQUEST['routefinder']);
$routefinder = str_replace('          ', ' ', $routefinder);
$routefinder = str_replace('         ', ' ', $routefinder);
$routefinder = str_replace('        ', ' ', $routefinder);
$routefinder = str_replace('       ', ' ', $routefinder);
$routefinder = str_replace('      ', ' ', $routefinder);
$routefinder = str_replace('     ', ' ', $routefinder);
$routefinder = str_replace('    ', ' ', $routefinder);
$routefinder = str_replace('   ', ' ', $routefinder);
$routefinder = str_replace('  ', ' ', $routefinder);



// stampa tutto il testo
echo $routefinder;

// cerca ed estrae l'aeroporto di arrivo
$a = strpos($routefinder, ') to ');
$destination_aerodrome = substr($routefinder, -4, $a);

// cerca ed estrae l'aeroporto di partenza
$b = $a -8;
$departure_aerodrome = substr($routefinder, $b, 4);

// cerca ed estrae la distanza
$c = strpos($routefinder, 'nautical miles');
$distance1 = substr($routefinder, $c - 7, 6);
$distance2 = str_replace(',', ' ', $distance1);
$distance3 = ltrim($distance2);
$distance4 = str_replace('.', ',', $distance3);

// cerca ed estrae la rotta
$d = strpos($routefinder, 'Tracks are magnetic, distances are in nautical miles. ');
$route1 = substr($routefinder, $d + 54);
$route2 = str_replace($destination_aerodrome, ' ', $route1);
$route3 = str_replace($departure_aerodrome, ' ', $route2);
$route4 = str_replace('SID', ' ', $route3);
$route5 = str_replace('STAR', ' ', $route4);
$route6 = ltrim($route5);

// cerca ed estrae i vari punti
$e = strpos($routefinder, 'Name/Remarks');
$f = substr($routefinder, $e + 14);
$g = strpos($f, 'Tracks are magnetic, distances are in nautical miles. ');
$h = substr($f, $g);
$i = str_replace($h, '', $f);
$l = strpos($i, '\r');
$m = explode ("<br>", $l);
?>
<BR>
<?php
echo $a;
echo "destination_aerodrome=".$destination_aerodrome;
?>
<BR>
<?php
echo $b;
echo "departure_aerodrome=".$departure_aerodrome;
?>
<BR>
<?php
echo $c;
echo "distance=".$distance4;
?>
<BR>
<?php
echo $d;
echo "route=".$route6;
?>
<BR>
<?php
echo $e;
echo "routeeeeeeeeeee=".$m[1];
?>


Come potete vedere dal codice ho provato a esplodere la variabile $l per ottenere l'array che cercavo, ma senza risultati.

Come posso fare?

Saluti.
Daniele
 
ciao
nono sono molto esperto, ma non è per caso che il problema siano i vari apici e doppi apici che hai nella stringa

prova ad aggiungere addslashes

$routefinder=nl2br(addslashes(($_REQUEST['routefinder']));
poi in fase di echo le togli con stripslashes

al massimo non funzia
 

Discussioni simili