I’m trying to get the focal length from an image’s EXIF data via PHP.
This is the code I’ve got so far:
$exif = exif_read_data("$photo");
$length10 = $exif['FocalLength'];
$length = eval($length10);
$length10 in this case returns something like “1050/10” for 105mm. I don’t know why. All I want to do is have PHP do the math to return 105. When I run this, though, I get the following error message:
[04-Nov-2012 20:06:39] PHP Parse error: syntax error, unexpected $end in index.php(52) : eval()'d code on line 1
Why?
Because
1050/10is not valid PHP. It has no terminating;to end the statement, and results in a syntax error.Rather than
eval()it (which technically is dangerous since you’re effectively processing user input even if it comes from EXIF), it is recommended to split on the/or capture the operands with a regular expression and then perform the operation yourself.