日期:2014-05-17  浏览次数:20402 次

为什么我的var_dump($file_suffix=="php")总是false?明明值一样的啊.
我是想读取压缩包里面的php文件内容,结果遇到这个怪问题给困惑啊
var_dump($file_suffix=="php");明明值一样,怎么是false啊...

PHP code
//获取后缀函数
function suffix($filename){
    $string= strrpos($filename,'.');
    $suffix = substr($filename,$string+1);
    return $suffix;
}
$zip = zip_open("test.zip"); //打开 ZIP 文件
if ($zip) {
    while ($zip_entry = zip_read($zip)) {  //读取 ZIP 文件中的下一个项目
        echo "Name: " . $file_name=zip_entry_name($zip_entry) . "<br/>";   //返回 ZIP 文件中的一个项目的名称
        echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "<br/>";  //返回 ZIP 文件中的一个项目的实际文件尺寸
        echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "<br/>";  //返回 ZIP 文件中的一个项目的被压缩尺寸
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "<br/>";  //返回 ZIP 文件中的一个项目的压缩方法
        echo $file_suffix=suffix($file_name);
        var_dump($file_suffix=="php");
        if($file_suffix=='php'){
           zip_entry_open($zip, $zip_entry, "r"); //打开 ZIP 文件中的一个项目以供读取
            echo "File Contents:" . "<br/>";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); //读取 ZIP 文件中的一个打开的项目
            echo "$buf";
            zip_entry_close($zip_entry);  //关闭 ZIP 文件中的一个项目
        }
        
           echo "<br/>";
    }
    zip_close($zip);  //关闭 ZIP 文件
}



------解决方案--------------------
能一样吗?
echo "Name: " . $file_name=zip_entry_name($zip_entry) . "<br/>"; //返回 ZIP 文件中的一个项目的名称
中 $file_name=zip_entry_name($zip_entry) . "<br/>" 这不是后面还有 <br/> 吗?
在 echo 中赋值的话,应写作
echo "Name: " .( $file_name=zip_entry_name($zip_entry) ). "<br/>";

echo "Name: " , $file_name=zip_entry_name($zip_entry) , "<br/>";