Здравствуйте. На сервере стоял "Windows NT WEB2003 5.2 build 3790 (Windows Server 2003 Enterprise Edition Service Pack 2) i586" поменяли на "Windows NT WEB 6.1 build 7601 (Windows Server 2008 R2 Datacenter Edition Service Pack 1) i586" и теперь в программе, который стоит в этом сервере, перестал работать заполнение документа Excel то есть выдает ошибку 500. Версия php, компоненты сервера все тот который стояла на старом сервере.
Код который работает в старом сервере:
$Excel = new COM( 'Excel.Application' ) or die("Unable to instanciate excel");
$Excel->AskToUpdateLinks = false;
$Excel->Visible = 0;
$Excel->DisplayAlerts = 0;
$Excel->Workbooks->Open( $file );
$cnt = $Excel->Sheets->Count();
for($ww=1; $ww<=$cnt; $ww++){
$WorkSheet = $Excel->Worksheets($ww);
$WorkSheet->activate;
$LastCell = $WorkSheet->Cells->SpecialCells(11);
$LastRow = $LastCell->Row;
$LastCol = $LastCell->Column;
for($i=1; $i<=$LastRow; $i++){
for($j=1; $j<=$LastCol; $j++){
$Cell = $WorkSheet->Cells( $i, $j );
$Value = $Cell->Text;
preg_match_all('/(%.*?%)/s', $Value, $matches);
foreach($matches[0] as $match){
if(in_array($match, array_keys($Params)))
$Value = str_replace($match, $Params[$match], $Value);
else{
if(preg_match('/%date_priem_last_(.*?)%/s', $Value, $out)){
$days = $out[1];
list( $d2, $m2, $y2 ) = explode( '.', $Params['%date_priem_last%'] );
$Value = str_replace( $out[0], date("d.m.Y", mktime(0, 0, 0, $m2, ($d2+$days), $y2)), $Value );
}
else
$Value = str_replace($match, ' ', $Value);
}
}
$Cell->Value = $Value;
}
}
}
$WorkSheet = $Excel->Worksheets(1);
$WorkSheet->activate;
$filename = realpath( tempnam( dirname( __FILE__ ) . '/tmp', 'a' ) );
unlink( $filename );
$Excel->ActiveWorkbook->SaveAs( $filename );
$Excel->Quit();
$Excel = Null;
clearstatcache();
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=" . $Arguments['template'] );
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");
$handle = fopen($filename, "r");
echo fread($handle, filesize($filename));
fclose($handle);
unlink( $filename );
Может кто то подскажет какая проблема может быть? Заранее спасибо!
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости