我使用 PHP 中的 ZipArchive 库生成 Zip 存档。它工作得很好,但如果文件名有不允许的符号(例如'<''>')存档没有这个文件。
我可以裁剪所有不允许的符号。
我无缘无故讨厌庄稼。任何其他方式(可能是掩码,但 '\' 和 '^' 不起作用)?
谢谢。
我使用 PHP 中的 ZipArchive 库生成 Zip 存档。它工作得很好,但如果文件名有不允许的符号(例如'<''>')存档没有这个文件。
我可以裁剪所有不允许的符号。
我无缘无故讨厌庄稼。任何其他方式(可能是掩码,但 '\' 和 '^' 不起作用)?
谢谢。
您可以尝试使用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"
您可以将白名单中的任何其他转义符号添加到此表达式。