使用PHP

时间:2017-06-18 15:18:01

标签: php unicode fopen

我正在SQL数据库中保存WYSIWYG小部件(下面的屏幕截图)中的内容和标题。我每次都在创建一个新文件(php)。我的问题是由于unicode,新文件有一个奇怪的名字。我正在尝试使用该名称的无名版本。

这是我的WYSIWYG表格:

enter image description here

这是在没有任何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'

0 个答案:

没有答案