PHP:JPEG EXIF中的字符串被视为整数

PHP:JPEG EXIF中的字符串被视为整数,php,integer,exif,Php,Integer,Exif,好心点,我对这一点还不太熟悉,可能遗漏了一些明显的东西 我正在建立一个电子商务网站。产品都是独一无二的,可以单独拍照,也可以离线销售。订单量很低,我希望能够通过简单地添加或删除目录中的图像文件来管理在线库存。为此,我将产品代码和产品大小(决定价格)存储在JPEG文件的EXIF数据中。目的是每隔一小时左右生成一个CSV并导入到商店软件中 但是,我不明白为什么不能对从EXIF数据中提取的字符串执行计算 这是我的错误代码: $dir = '.'; $all_names = sca

好心点,我对这一点还不太熟悉,可能遗漏了一些明显的东西

我正在建立一个电子商务网站。产品都是独一无二的,可以单独拍照,也可以离线销售。订单量很低,我希望能够通过简单地添加或删除目录中的图像文件来管理在线库存。为此,我将产品代码和产品大小(决定价格)存储在JPEG文件的EXIF数据中。目的是每隔一小时左右生成一个CSV并导入到商店软件中

但是,我不明白为什么不能对从EXIF数据中提取的字符串执行计算

这是我的错误代码:
    $dir    = '.';
    $all_names = scandir($dir);
    $ignore = array(".", "..", "sold", "onhold", "exifread.php");
    $files = array_diff($all_names, $ignore);


    foreach ($files as $file) {

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

    $ifd0 = $exif[IFD0];

    $size = $ifd0['Comments'];
    $prod_code = $ifd0['Author'];
    $time_taken = $ifd0['DateTime'];
    $price_per_m2 = 102;
    $gst = 1.1;
    $total_price = ($size * $price_per_m2) * $gst;

    echo "$file;$size;$prod_code;$time_taken;$total_price<br />\n";
    }

    ?>
$dir=';
$all_name=scandir($dir);
$ignore=array(“.”、“.”、“已售出”、“保留”、“exifrad.php”);
$files=array\u diff($all\u name,$ignore);
foreach($files作为$file){
$exif=exif\u读取数据($file,0,true);
$ifd0=$exif[ifd0];
$size=$ifd0['Comments'];
$prod_code=$ifd0['Author'];
$time_take=$ifd0['DateTime'];
每平方米$price_=102;
$gst=1.1;
$总价=($尺寸*$每平方米价格)*$商品及服务税;
echo“$file;$size;$prod\u code;$time\u take;$total\u price
\n”; } ?>
$size被视为整数,但大小均以平方米为单位,小数点后两位(例如3.45)


我尝试用str_替换来删除“.”并将其乘以1.02而不是102,但尽管$size得到了正确的回显(例如345),但乘法($total_price)表明$size仍然被视为一个非整数(例如3)。

EXIF数据被编码为UTF-16LE。您需要先通过iconv或类似工具将其转换为ASCII,然后才能在计算中使用它,这样它就不会在第一个NUL时被截断。

显示组成数据的字节。我不是100%确定您的意思,但我从for($I=0;$I