0

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)))); ?>

誰かが私に何が起こっているのか説明できますか? ここには何の論理も見えません。

どうもありがとう !

4

0 に答える 0