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.350376, 18.106947]
[1] => 59.350376, 18.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 :)
|