private function _addArchiveItem(ZipArchive $oZip, $sSource, $_sIterationItem, array $aCallbacks, $sInsidePathPrefix = '')
{
$_sIterationItem = str_replace('\\', '/', $_sIterationItem);
$sInsidePathPrefix = rtrim($sInsidePathPrefix, '/') . '/';
if (in_array(substr($_sIterationItem, strrpos($_sIterationItem, '/') + 1), array('.', '..'))) {
return;
}
$_sIterationItem = realpath($_sIterationItem);
$_sIterationItem = str_replace('\\', '/', $_sIterationItem);
if (true === is_dir($_sIterationItem)) {
$this->_addEmptyDir($oZip, $sInsidePathPrefix . str_replace($sSource . '/', '', $_sIterationItem . '/'), $aCallbacks['directory_name']);
} else {
if (true === is_file($_sIterationItem)) {
$this->_addFromString($oZip, $sInsidePathPrefix . str_replace($sSource . '/', '', $_sIterationItem), file_get_contents($_sIterationItem), $aCallbacks);
}
}
}