私は次のコードを持っています:
function appear($data)
{
$output = '';
$unsee = unserialize ( $data );
if (is_array ( $nsee ))
{
$output .= '<table>' . "";
foreach ( $nsee as $button )
{
$output .= loadbutton ( $button);
}
$output .= '
<tr><td>IP</td>
<td>' . $_SERVER ['REMOTE_ADDR'] . '</td></tr>' . "";
$output .= '</table>' . "";
}
return $output;
}
function loadbutton($button)
{
$output = '';
$output .= '<tr>' . "";
$output .= '<td>';
$output .= $button ['values'];
$output .= '</td><td>';
$output .= $_POST [strtolower ( $button ['values'])] ;
$output .= '</td>' . "";
$output .= '</tr>' . "";
return $output;
}
英語のシリアル化されたデータにappear関数を使用すると、完全に機能し、正常に出力されます。
しかし、アラビア語のシリアライズされたデータに使用すると。アラビア文字が「????」と表示されることを除いて、すべてが機能します。実際のアラビア文字ではありません。
データベース内のデータを確認しました。すべてがUTF-8であり、すべてが有効なデータベースであり、シリアル化された保存が有効です。しかし、出力と非シリアル化は正しくありません。
これを修正する方法を知っていますか?アンシリアライゼーションはアラビア文字をサポートしていますか? そうでない場合、アラビア文字を正しく保存するのに取得しないのはなぜですか?
編集:
私が信じている問題は、$button ['values'] の呼び出しにあります。
私の$button
配列は
array ( 'values' => 'Field Value')
解決策が思い浮かびません。私はそれがうまくいくはずだと知っています。
解決:
問題は、シリアル化されたデータの mysql 挿入ステートメントにありました。私はラテン語で挿入していました。単純でばかげた間違い。
ご協力ありがとうございました。