PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-05 13:09:11
Tekst näeb välja umbes järgmine:
LOAD> 5.1 at 18:00. Spirit, Pederdalsvej 1, DK2770 Kastrup. FERRY> 6.1 at 7:10. Silja Line, Stockholm [59.350376, 18.106947] - Turku. UNLOAD1> 6.1 around 22:00. Serviceair, Rahtitie 1, FI01530 Vantaa [60.309934, 24.974467] UNLOAD2> 7.1 at 8:00. DHL, Katriinantie 14-16, 01530 Vantaa [60.318326, 24.906397]

Teksti sees on järgmised kombinatsioonid ehk geokoordinaadid:
[60.309934, 24.974467]
[59.350376, 18.106947]
[60.318326, 24.906397]
...


Geokoordinaadid vahetuvad pidevalt.

Kuidas oleks võimalik tuvastada PHP koodiga geokoordinaadid, ning asendada järgmiselt:
FERRY> 6.1 at 7:10. Silja Line, Stockholm [<a href="https://maps.google.com/maps?q=loc:59.350376, 18.106947">59.350376, 18.106947</a>] - Turku.

Viimati muudetud: 05-01-2014 13:11:25
Muutja: joker
Põhjus:

RE: Süntaksi tuvastamine teksti sees
Postitaja: blaa 2014-01-05 13:38:43
ma imestan, et sa oled nii kaua php-ga tegelenud, aga regulaaravaldised on kaarega mööda läinud
RE: Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-05 19:52:38
Programmeerimine rohkem hobi olnud, kuid nüüd hea abivahend tööülesannete täitmisel/teostamisel :)

Regulaaravaldistega pole olnud vajadust tegeleda, kuid nüüd koputasid uksele ...

Hea lehekülg regular Expressioni kohta:
http://www.w3programmers.com/working-with-php-regular-expres

Viimati muudetud: 05-01-2014 20:15:09
Muutja: joker
Põhjus:

RE: Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-05 22:09:15
Sain tööle miskit sellise:


PHP kood:
 
preg_match
('/\[([0-9., ]+)\]/'$result['body'], $coordinates);

echo 
"<pre>";
print_r($coordinates);
echo 
"</pre>";


Tulemuseks:

PHP kood:
 
Array
(
    [
0] => [59.35037618.106947]
    [
1] => 59.35037618.106947
)


Samas küsimus, kuidas ära koristada array null väärtus ... et jääks järgi ainult "59.350376, 18.106947"?

Viimati muudetud: 05-01-2014 22:09:35
Muutja: joker
Põhjus:

RE: Süntaksi tuvastamine teksti sees
Postitaja: blaa 2014-01-06 11:43:02
TSITEERITUD:

Samas küsimus, kuidas ära koristada array null väärtus ... et jääks järgi ainult "59.350376, 18.106947"?

vaata manuaalis preg_match() neljas parameeter - flags

Algne küsimus oli sul, et kuidas asendada. vt preg_replace()
RE: Süntaksi tuvastamine teksti sees
Postitaja: Snuup Doog 2014-01-06 11:44:19
Teed elroni kodukat vä?

TSITEERITUD:
Programmeerimine rohkem hobi olnud, kuid nüüd hea abivahend tööülesannete täitmisel/teostamisel :)
RE: Süntaksi tuvastamine teksti sees
Postitaja: blaa 2014-01-06 11:50:04
Tallink arvatavasti
RE: Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-06 11:53:00
Tegemist on logistika süsteemiga :)
RE: Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-08 16:03:47
Kukkus välja selline funktsioon ...


PHP kood:
 

#MAP LOCATION
define ("MAP_LOCATION""https://maps.google.com/maps?q=loc:");

    
//////////////////////////////////////////////
    // Add coordinates link to text
    
function linkTextCoordinates($text)
    {
        
//Find all values
        
preg_match_all('/\[([0-9., ]+)\]/'$text$coordinates);
    
        
//If exist coordinates
        
if (isset($coordinates[1]))
        {
            
//Replace values
            
foreach($coordinates[1] AS $value)
            {
                
//Search in the text
                
$search[]  = $value;

                
//Replace with text
                
$replace[] = "<a href='".MAP_LOCATION.preg_replace('/\s+/'''$value)."' target='_map'>$value</a>";
            }
        }
        
        
//Return result
        
return str_replace($search$replace$text);
    }

Viimati muudetud: 08-01-2014 16:04:28
Muutja: joker
Põhjus:

RE: Süntaksi tuvastamine teksti sees
Postitaja: blaa 2014-01-08 17:37:48
Lolo, ikka sa pingutad üle. Ma ju ütlesin, et asendamiseks on preg_replace()

PHP kood:
 
function linkTextCoordinates($text)
{
    return 
preg_replace('/\[([\d\.]+), ([\d\.]+)\]/smU''<a href="'.MAP_LOCATION.'\1,\2" target="_map">\0</a>'$text);
}
RE: Süntaksi tuvastamine teksti sees
Postitaja: joker 2014-01-08 22:00:38
Tänud, tunduvalt toekam/lihtsam/kenam :)

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0829989910126