PHP子字符串提取和计算

时间:2014-11-28 21:59:07

标签: php exif

我用来显示图片的exif数据。

这是代码

<?php

  $filename = "http://www.rallyfun.net/images/20140921231511_img_7369.jpg";


  $exif = exif_read_data($filename, 0, true);

  echo "Exposure: " . $exif["EXIF"]["ExposureTime"] . " sec.<br />";
  echo "F: " . $exif["EXIF"]["FNumber"] . "<br />";
  echo "ISO: " . $exif["EXIF"]["ISOSpeedRatings"] . "<br />";

?>

这是结果:

Exposure: 1/6400 sec.
F: 63/10 sec.
ISO: 1000

除了光圈外,结果还可以:它必须显示为(在这种情况下)6.3所以我需要将第一个数字(63)除以&#34; /&#34;之后的数字。 (10)。

如何?

3 个答案:

答案 0 :(得分:0)

尝试以下方法:

$n = $exif["EXIF"]["FNumber"];
$whole = floor($n);      // 63
$fraction = $n - $whole; // .10

$result=$whole/$fraction;

答案 1 :(得分:0)

你可以使用explode

$tmp = explode('/', str_replace(' sec.', '', $exif["EXIF"]["FNumber"]));
echo "F: " . ($tmp[0]/$tmp[1]) . "sec<br />";

答案 2 :(得分:0)

您可以使用此代码显示光圈:

preg_match('/([0-9]+)\/([0-9]+)/',$exif["EXIF"]["FNumber"],$m);
if($m[1] && $m[2])
{
    $newaperture = $m[1]/$m[2];
    echo $newaperture;
}