I have a foreach loop that spits out all of the “read mail” in a user’s inbox:
foreach ($tmpArray as $array) {
if ($array['message_parent_id'] == 0) {
$convo = $this->model->getConvoArray($array['message_id']);
$array['message_datetime'] = $convo[sizeof($convo) - 1]['message_datetime'];
$lastMessage = $this->model->getLastReply($array['message_id']);
if ($_SESSION['username'] == $lastMessage['message_sender']) {
$messageBody = "<b>⇐</b> " . $lastMessage['message_body'];
} else {
$messageBody = $lastMessage['message_body'];
}
$array['message_body'] = $messageBody;
}
array_push($readMail, $array);
//echo PrettyDate::convert($array['message_datetime']);
//echo "<br />";
}
However, when $lastMessage[‘message_body’] == “<(^_^<) Kirby!” I get $array[‘message_body’] == “by!”. But when $lastMessage[‘message_body’] == “<(^_ Kirby!” it is stored into $array[‘message_body’] correctly as “<(^_ Kirby!”. Not entirely sure what’s going on. All other cases I’ve tried work fine.
It works when I take out around &lArr. I’m guessing it’s something to do with that.
Wrap $lastMessage[‘message_body’] in htmlentities() and it should solve your problem.