我有.zip
个文件,名称为Café, Room service, deli'very.zip
。我可以通过删除特殊字符来更改.zip
文件的名称。
$string = str_replace(array(","),array(""),$string);
$accent = 'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕƒ';
$noaccent = 'SOZsozYYuaaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRra';
$string = strtr(utf8_decode($string),utf8_decode($accent),$noaccent);
$string = strtr($string, $accent, $noaccent);
现在问题是当我从.zip
读取文件时,它引用了它的原始.zip名称,而不是我所做的新更改名称。
修改
我可以将.zip
文件名从Café, Room service, deli'very.zip
更改为Cafe Room service, delivery.zip
但是当从.zip文件中读取时,请说1.jpg
,然后它就像Café, Room service, deli'very/1.jpg
那样读取路径
有人可以专注吗?
编辑:
我正在使用以下代码来处理.zip文件
$zip = zip_open($_FILES['tmp_name']);
$zipEntry = zip_read($zip);
zip_entry_name($zipEntry);
答案 0 :(得分:1)
路径被编码为zip数据的一部分。它不是基于zip文件名。 单独更改文件名不会更改zip文件中的路径。
答案 1 :(得分:1)
zip文件是目录的压缩内容。
该目录包含在zip文件中,并不是从zip文件的名称生成的,因此您可以调用zip文件。 foo.zip,它仍然包含相同的文件和目录。 zip文件的名称与包含的目录相同,但它们不是一回事。
更改zip文件内容的最简单方法是
答案 2 :(得分:0)