mysql に保存されているデータのシリアル化を解除しようとしています。
表示できない 1 つのフィールドを除いて、すべて問題ありません。
データ :
a:4:{
s:7:"prénom";s:6:"Johnny";
s:3:"nom";s:5:"Rocky";
s:12:"NOT WORKING";s:2:"on";
s:7:"opt in2";s:2:"on";
}
私が呼んでいる
<?php $mydata = $result['data'];
$mydata = unserialize($mydata);
echo $mydata['prénom'];
echo $mydata['nom'];
echo $mydata['NOT WORKING'];
echo $mydata['opt in2'];
?>
"prénom"、"nom"、"opt in2" は正しく表示されますが、"NOT WORKING" は正しく表示されません (何も表示されません)。後者で興味深いのは、文字列の前の数字が文字数と一致していないことです。文字列が 11 文字 (スペースを含む) であるのに対して、12 と書かれていることがわかります。11に変更しようとしましたが、すべてが台無しになります。
さらに楽しいのは、すべての値 (「NOT WORKING」を含む) を次のように適切に表示できることです。
<?php foreach($result['data'] as $fieldName => $fieldValue){?>
<?php echo esc_html(strip_tags(wp_kses_stripslashes(ucwords($fieldName)))); ?>
<?php echo esc_html(strip_tags(wp_kses_stripslashes(ucwords($fieldValue)))); ?>
誰かが私に何が起こっているのか説明できますか? ここには何の論理も見えません。
どうもありがとう !