Could some one explain this to me i am not familiar with preg_match_all filters, this code works fine except it does not return a negative value if one of the latitudes and longitudes is negative.
if ( preg_match_all( '#<td>\s+-?(\d+\.\d+)\s+</td>#', $output, $coords ) ) { list( $lat, $long ) = $coords[1]; echo 'Latitude: $lat\nLongitude: $long\n'; }
output: Latitude: 30.6963 Longitude: 71.6207 (longitude is missing a ‘-‘)
The value of the
coordsvariable depends on what is matched by the code inside the parentheses. Moving the optional minus sign (-?) inside the parentheses should do the trick:See the official documentation for details about preg in php and php.net/preg_match_all for the details of
preg_match_all.