0

ベトナム語のフォームがあり、データをWebサービスに送信します。このWebサービスは、そのデータをファイルに保存します。ただし、ファイルには常に「0000」が含まれ、他には何も含まれていません。

bomなしでutf-8にデータエンコーディングを保存する正しい方法は何ですか?ありがとうございました

これは私のwebservice.phpです:

if ($_SERVER["REQUEST_METHOD"] == "POST"){
    $data = $_POST["author"] . "\n" . $_POST["title"] . "\n" + $_POST["category"] . "\n" + $_POST["article"];
    $fileName = mb_convert_encoding($_REQUEST["author"], "UTF-8", "auto");
    $data = mb_convert_encoding($data, 'UTF-8', "auto");
    file_put_contents($fileName, $data, FILE_APPEND | LOCK_EX);
    print $data;
}else{
    invalidRequest();
} ?>
4

2 に答える 2

3

file_put_contents()のfilename-argumentがありません。コードは、ファイルに何も保存しません。


<edit>

また、これを見てください:

  + $_POST["category"] . "\n" + $_POST["article"];
  ^                           ^

+そこで数学演算子を使用しているので、文字列は数値に変換されます(この場合は0)

于 2012-06-17T21:19:38.557 に答える
2

フォームには次のものが含まれている必要があります

<form ... accept-charset="UTF-8">

次に、mb_convert_encoding()なしでファイルに書き込むことができます。しかし、決して使用しないでください

$fileName = $_REQUEST["author"];

!何かのようなもの

$fileName = $author_names[$_REQUEST["author_id"]];

安全なはずです。

于 2012-06-17T21:24:51.477 に答える