真实(简单)掩盖zip存档中文件名的方法

时间:2013-05-28 07:50:14

标签: php zend-framework zip ziparchive

我在PHP中使用ZipArchive lib生成Zip存档。它运行良好,但如果文件名中有不允许的符号(例如'<''>'),则归档文件没有此文件。

我可以裁剪所有不允许的符号。

我无动于衷地讨厌作物。任何其他方式(可能是掩码,但'\'和'^'不起作用)?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用preg_replace()

<?php
header('Content-Type: text/plain');

$file = '!@#$%^&*()ashdgf$%^&*(.pdf';

$file = preg_replace('/[^a-z\.\-\_]/i', '_', $file);

var_dump($file);
?>

节目:

string(26) "__________ashdgf______.pdf"

如果\^是可接受的字符,请使用以下字符:

<?php
header('Content-Type: text/plain');

$file = 'folder\as!@#$%^&*()ashdgf$%^&*(.zip';

$file = preg_replace('/[^a-z\.\-\_\\\\^]/i', '_', $file);

var_dump($file);
?>

节目:

string(35) "folder\as_____^____ashdgf__^___.zip"

您可以将白名单中的任何其他转义符号添加到此表达式。