protected function put($args)
{
$target = $args['target'];
if (($volume = $this->volume($target)) == false || ($file = $volume->file($target)) == false) {
return array('error' => $this->error(self::ERROR_SAVE, '#' . $target, self::ERROR_FILE_NOT_FOUND));
}
if (!empty($args['encoding'])) {
$content = iconv('UTF-8', $args['encoding'], $args['content']);
if ($content === false && function_exists('mb_detect_encoding')) {
$content = mb_convert_encoding($args['content'], $args['encoding'], 'UTF-8');
}
if ($content !== false) {
$args['content'] = $content;
}
}
if (($file = $volume->putContents($target, $args['content'])) == false) {
return array('error' => $this->error(self::ERROR_SAVE, $volume->path($target), $volume->error()));
}
return array('changed' => array($file));
}