public function overwrite($messages, $newline = true, $size = null)
{
// messages can be an array, let's convert it to string anyway
$messages = join($newline ? "\n" : '', (array) $messages);
// since overwrite is supposed to overwrite last message...
if (!isset($size)) {
// removing possible formatting of lastMessage with strip_tags
$size = strlen(strip_tags($this->lastMessage));
}
// ...let's fill its length with backspaces
$this->write(str_repeat("", $size), false);
// write the new message
$this->write($messages, false);
$fill = $size - strlen(strip_tags($messages));
if ($fill > 0) {
// whitespace whatever has left
$this->write(str_repeat(' ', $fill), false);
// move the cursor back
$this->write(str_repeat("", $fill), false);
}
if ($newline) {
$this->write('');
}
$this->lastMessage = $messages;
}