PHP输出数字,前导零错误

时间:2013-12-13 21:17:21

标签: php integer

我在这样的文件中有一行:

0000000/BirthstoneEnsemble/f/0/1380152724

我在$pieces = explode("/", $line);

爆炸

当我执行echo $pieces[0] == "0000000"时,它返回false。我尝试将pieces[0]转换为字符串,但它始终不正确。

function build_file_assoc() {
global $dir;
$assoc = [];

   $file_assoc = file($dir . 'rsnjxdlxwxwun.dbt'); 

   for($i = 0; $i < count($file_assoc) - 1; $i++) {

   if($i > 0) {

        list($parent_folder, $image_name, $tag, $size, $date) = explode("/", $file_assoc[$i]);
        $assoc[] = [
            'parent_folder' => (string)$parent_folder,
            'image_name' => $image_name,
            'tag' => $tag,
            'size' => $size,
            'date' => $date
        ];

       }
   }

   return $assoc;
}

$g = build_file_assoc();

$first = $g[0]['parent_folder'];

echo $first == "0000000"; // false

文件内容:

0000000/BirthstoneEnsemble/f/0/1380152724
0000000/Thumbs.db/a/83968/1384248954
0000000/bridal images for frame/f/0/1380152879

4 个答案:

答案 0 :(得分:0)

尝试打印数组print_r($ pieces),您将看到在内爆后保存在特定字段中的内容。

答案 1 :(得分:0)

如果我运行您问题中的代码,则可以正常运行:

<?php 
$line = '0000000/BirthstoneEnsemble/f/0/1380152724';
$pieces = explode("/", $line);

echo var_dump($pieces[0] == "0000000"); //true
 ?>

答案 2 :(得分:0)

我会使用相同的比较运算符并输入cast pieces[0]作为字符串。

$line = '0000000/BirthstoneEnsemble/f/0/1380152724';

$pieces = explode('/',$line);

//echo '<pre>',print_r($pieces),'</pre>';

if((string)$pieces[0]==='0000000'){
    echo true;
}else{
    echo false;
}
// output: 1

答案 3 :(得分:0)

<强>的var_dump

检查 piece 的实际值,因为那里可能有空格或制表符 - var_dump会为你显示它。

类似问题

看看这个post