我正在SQL数据库中保存WYSIWYG小部件(下面的屏幕截图)中的内容和标题。我每次都在创建一个新文件(php)。我的问题是由于unicode,新文件有一个奇怪的名字。我正在尝试使用该名称的无名版本。
这是我的WYSIWYG表格:
这是在没有任何unicode问题的情况下保存数据库中的内容和标题的部分,因为为数据库字段设置了UTF8:
$sql = "INSERT INTO `articles`(`Content`, `Article_Name`) VALUE ('$_POST[htmlcontent]','$_POST[articlename]')";
这是创建文件的部分,但名称与unicode存在问题:
$myfile = fopen("$articlename.php", "w") or die("Unable to open file!");
我首先尝试过这个:
$unicoded = iconv('windows-1250', 'utf-8', file_get_contents($articlename));
$myfile = fopen("$unicoded.php", "w") or die("Unable to open file!");
然后这个:
function utf8_fopen_read($articlename) {
$fc = iconv('windows-1250', 'utf-8', $articlename);
$handle=fopen("$fc", "w");
fwrite($handle, $fc);
fseek($handle, 0);
return $handle;
}
$myfile = utf8_fopen_read("$articlename.php");
它们都会返回一个名为“Ď“Žâ€œŽ。”的文件,尽管它应该被命名为“φφφ.php”
UPD:
我试过这个,控制台返回一个空字符串:
$fc = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $articlename);
echo "<script>console.log('$fc')</script>";
我也试过这个:
$name = urlencode($_POST["articlename"]) . ".php";
echo "<script>console.log('$name')</script>";
$myfile = fopen($name, "w") or die("Unable to open file!");
但名称现在就像'%CF%86.php'