我在php中有代码,用于创建文件名,用户输入如下
HTML
<form method="post">
<input type="text" name="file">
<input type="submit">
</form>
PHP
$file = $_POST['file'].'.php';
$f = fopen($file, 'w');
fclose($f);
当用户使用非英语字符时出现问题 示例用户输入=اللغةالعربيه
resault =ظ...ط±ط§ظ‡ظ,ظ-ط§ظ“طھط§ظٹطھظ†ط.php
但它应该是=اللغةالعربيه。php
答案 0 :(得分:0)
尝试使用非英文文件名创建文件可能会非常困难。
最简单的解决方案是根本不使用此类文件名,但编码所有文件名,例如与urlencode
:
$filename = $_POST['file'].'.php';
$encoded_filename = urlencode($filename);
$f = fopen($encoded_filename, 'w');
fclose($f);
这不会影响英文字符,并允许使用任何语言创建文件名。
请注意,每个文件系统对文件名的长度都有一些限制,因此如果$encoded_filename
变得太长,则无效。