2017-03-06 1 views
-3

Ich brauche einen Regex Experten, die diese einzelnen String-Variable in mehrere Variablen aufteilen. Kommende Daten aus der Quelle mit Zeilenumbruch, aber nicht \ n. Ich werde sehr dankbar sein.verschiedene Muster von lat lange Datum Zeit float von 1 String und teilen Sie es auf Variablen

$text_utf8_test = "lat:24.910717 lon:67.073710 
speed:0.00 
T:17/02/22 17:00 
http://maps.google.com/maps?f=q&q=24.910717,67.073710&z=16 
Pwr: ON Door: OFF ACC: OFF"; 

Erwartete PHP-Variablen nach

echo $lat; 
echo $long; 
echo $speed; 
echo $time; 
echo $pwr; 
echo $door; 
echo $acc; 

Erwartete Ausgabe Ergebnis

24.910717 /*This value can be vary due to dynamic update from location*/ 
67.073710 
0.00 /*this can be from zero to 320*/ 
ON /*this can be ON or OFF*/ 
OFF /*this can be ON or OFF*/ 
OFF /*this can be ON or OFF*/ 
+1

Willkommen bei StackOv spliting erflow! Bitte probiere es zuerst selbst aus und zeig uns deine Ausdrücke. Diese Website ist kein Code-Schreibdienst. – ventiseis

+0

werden wir Ihre Bemühungen sehen? – RomanPerekhrest

+0

Danke an alle für die wunderbare Hilfe! extra @ventiseis habe ich das selbst gemacht :) – Aadeelyoo

Antwort

1
$text_utf8_test = "lat:24.910717 lon:67.073710 
speed:0.00 
T:17/02/22 17:59 
http://maps.google.com/maps?f=q&q=24.910717,67.073710&z=16 
Pwr: ON Door: OFF ACC: OFF"; 
$phone_test = "88888888888"; 

echo $text_utf8_test; 
preg_match('/([0-9.-]+).+?([0-9.-]+)/', $text_utf8_test, $matches); /*For lat long exclusively*/ 
//preg_match('/OFF/', $text_utf8_test, $test); 
$keywords = preg_split("/[\s,]+/", $text_utf8_test); /*For spliting this whole string*/ 
preg_match('~speed:([-+]?[0-9]*\.?[0-9]*)~', $keywords[2], $speed); /*For grabing speed*/ 
preg_match('/(\d{2})\/(\d{2})\/(\d{2})(\d{2}):(\d{2})$/', $keywords[3].$keywords[4], $split_date_time); /*For grabing date time*/ 
/*Spliting and combining date time into sql format*/ 
if(!empty($split_date_time[3])){ 
$date = $split_date_time[3].$split_date_time[2].$split_date_time[1]; 
echo "</br>"; 
$date_sanitized1 = strtotime($split_date_time[2]."/".$split_date_time[3]."/".$split_date_time[1]); 
$date_sanitized2 = date('Y-m-d',$date_sanitized1); 
$date_time = $date_sanitized2." ".$split_date_time[4].":".$split_date_time[5].":"."00.000" ;  
} 

if((!empty($keywords[2])) && (!empty($keywords[8])) && (!empty($keywords[10])) && (!empty($keywords[12]))){ 
$speed=$speed[1]; 
$power=$keywords[8]; 
$door=$keywords[10]; 
$acc=$keywords[12]; 
} 

$lat=$matches[1]; 
$long=$matches[2]; 


if ((!empty($lat)) && (!empty($long)) && (!empty($speed)) && (!empty($date_time)) && (!empty($power)) && (!empty($door)) && (!empty($acc))){ 
echo "</br>"; 
echo $lat; 
echo "</br>"; 
echo $long; 
echo "</br>"; 
echo $speed; 
echo "</br>"; 
echo $date_time; 
echo "</br>"; 
echo $power; 
echo "</br>"; 
echo $door; 
echo "</br>"; 
echo $acc; 
echo "</br>"; 
}else{ 
    echo "noting"; 
} 

Ausgabe

24.910717 
67.073710 
0.00 
2017-02-22 17:59:00.000 
ON 
OFF 
OFF 
Verwandte Themen