I use a regex to get a value from a document and store it in a variable called $distance. That is a string, but I have to put it in an int column of a table in a database.
Of course, normally I would go and say
$distance=intval($distance);
But it doesn’t work! I really don’t know why.
This is all I am doing:
preg_match_all($regex,$content,$match);
$distance=$match[0][1];
$distance=intval($distance);
The regex is correct, if I echo $distance, it is e.g. “0” – but I need it to be 0 instead of “0”. Using intval() will somehow always convert it to an empty string.
EDIT 1
The regex is this:
$regex='#<value>(.+?)</value>#'; // Please, I know I shouldn't use regex for parsing XML - but that is not the problem right now
Then I proceed with
preg_match_all($regex,$content,$match);
$distance=$match[0][1];
$distance=intval($distance);
If you’d do
print_r($match)you’d see that the array you need is$match[1]:Output:
In this case:
Output:
int(12)Alternatively, you can use
PREG_SET_ORDERflag, i.e.preg_match_all($regex,$content,$match,$flags=PREG_SET_ORDER);, $match array has this structure: