Viewing file: old_index.php (8.9 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?
//error_reporting(E_ALL);
if (!function_exists('mb_str_replace')) {
function mb_str_replace($search, $replace, $subject, &$count = 0) {
if (!is_array($subject)) {
// Normalize $search and $replace so they are both arrays of the same length
$searches = is_array($search) ? array_values($search) : array($search);
$replacements = is_array($replace) ? array_values($replace) : array($replace);
$replacements = array_pad($replacements, count($searches), '');
foreach ($searches as $key => $search) {
$parts = mb_split(preg_quote($search), $subject);
$count += count($parts) - 1;
$subject = implode($replacements[$key], $parts);
}
} else {
// Call mb_str_replace for each subject in array, recursively
foreach ($subject as $key => $value) {
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
}
}
return $subject;
}
}
function generate($name, $data)
{
$header = file_get_contents("header.xml");
$footer = file_get_contents("footer.xml");
$page = file_get_contents("page.xml");
/*header("Cache-Control: public");
header("Content-Description: File Transfer");
$fileName = $name.".doc";
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/msword");
header("Content-Transfer-Encoding: binary");*/
ob_start();
echo $header;
foreach($data as $row)
{
$keys = array_keys($row);
$values = array_values($row);
echo str_replace($keys, $values, $page);
}
echo $footer;
$html = ob_get_contents();
ob_end_clean();
$path = 'files/'.$name;
file_put_contents(iconv('cp1251','utf-8',$path), $html);
return $path;
}
function get_text_ukr($ukr)
{
$str = "";
if ($ukr['gender'] == 1) $str.= "�������"; else $str .= '��������';
$str .= " � {$ukr['year']} ";
$str .= $ukr['universityname']."<br />";
if ($ukr['gender'] == 1) $str .= "������"; else $str .='�������';
$str .= " ������ ";
switch($ukr['specdirprofcode'][0])
{
case '6' : $str .= '��������� '; break;
case '7' : $str .= '���������� '; break;
case '8' : $str .= '������� '; break;
}
$str .= "<br/>";
switch($ukr['specdirprofcode'][0])
{
case '6' : $str .= '�� �������� ��������� '; break;
case '7' : $str .= '';
if ($ukr['gender'] == 1) $str .= "������� "; else $str .= '�������� ';
$str .= '����� ���� ����� <br />�� ������������� '; break;
case '8' : $str .= '';
if ($ukr['gender'] == 1) $str .= "������� "; else $str .= '�������� ';
$str .= '����� ���� ����� <br />�� ������������� '; break;
}
$str .= "{$ukr['specdirprofcode']} «".mb_ucfirst($ukr['specdirprofname'])."»<br/>";
if ($ukr['gender'] == 1) $str.= "������ "; else $str.='������� ';
$str .= "����������� ". $ukr['qualification']."<br/><br/>";
return $str;
}
function get_date_ukr($ukr)
{
$date = explode("/", $ukr);
$arr = array("", "����", "������", "�������", "�����", "������", "������", "�����", "������", "�������", "������", "���������", "������");
return "{$date[0]} {$arr[(int)$date[1]]} {$date[2]} �.";
}
function get_date_eng($ukr)
{
$date = explode("/", $ukr);
$arr = array("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
return "{$date[0]} {$arr[(int)$date[1]]} {$date[2]}";
}
function get_text_eng($eng)
{
$str = "in {$eng['year']} completed the full course of {$eng['universityname']} <br/>";
$str .= "obtained ";
switch($eng['specdirprofcode'][0])
{
case '6' : $str .= 'bachelor\'s'; break;
case '7' : $str .= 'specialist\'s'; break;
case '8' : $str .= 'master\'s'; break;
}
$str .= " degree in the<br/>";
$str .= "field of study {$eng['specdirprofcode']} «".mb_ucfirst($eng['specdirprofname'])."»<br/>";
$str .= "obtained qualification of ". ucfirst($eng['qualification']) ."<br/>";
return $str;
}
function generate_array($ukr, $eng)
{
return array(
'{Number}' => "{$ukr['series']} �{$ukr['number']}",
'{SurnameUkr}' => "{$ukr['lastname']}",
'{NameUkr}' => "{$ukr['firstname']}",
'{FatherNameUkr}' => "{$ukr['middlename']}",
'{SurnameEng}' => "{$eng['lastname']}",
'{NameEng}' => "{$eng['firstname']}",
'{FatherNameEng}' => "{$eng['middlename']}",
'{TextUkr}' => get_text_ukr($ukr),
'{TextEng}' => get_text_eng($eng),
'{DateUkr}' => get_date_ukr($ukr['dategive']),
'{DateEng}' => get_date_eng($ukr['dategive']),
);
}
mb_internal_encoding("cp1251");
function mb_ucfirst($text) {
return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
}
$file_in_server = $_FILES['xmlfile']['tmp_name'];
if (is_file($file_in_server))
{
$xml = simplexml_load_file($file_in_server);
$year = 2015;
$arr1 = array();
$arr2 = array();
$count = 0;
foreach($xml->document as $document)
{
$count++;
$data = $document->documentdata;
$ukr = array('fio' => strval($data['fio']),
'gender' => intval($data['idtypesex']),
'year' => '2016 ����',
'universityname' => iconv('utf-8','cp1251',strval($data['universityname'])),
'qualificationname' => iconv('utf-8','cp1251',strval($data['qualificationname'])),
'specdirprofcode' => iconv('utf-8','cp1251',strval($data['specdirprofcode'])),
'specdirprofname' => iconv('utf-8','cp1251',strval($data['specdirprofname'])),
'bossworkpost' => iconv('utf-8','cp1251',strval($data['bossworkpost'])),
'series' => iconv('utf-8','cp1251',strval($data['series'])),
'dategive' => iconv('utf-8','cp1251',strval($data['dategive'])),
'number' => iconv('utf-8','cp1251',strval($data['number'])),
'lastname' => iconv('utf-8','cp1251',strval($data['lastname'])),
'firstname' => iconv('utf-8','cp1251',strval($data['firstname'])),
'middlename' => iconv('utf-8','cp1251',strval($data['middlename'])),
'qualification' => iconv('utf-8','cp1251',strval($data['educationqualificationnamerod'])),
'specdirprofcode' => strval($data['specdirprofcode']),
'boss' => '��������� �.�.',
);
$eng = array('fio' => strval($data['fioen']),
'year' => 2016,
'universityname' => strval($data['universitynameen']),
'qualificationname' => strval($data['qualificationnameen']),
'specdirprofcode' => strval($data['specdirprofcode']),
'specdirprofname' => strval($data['specdirprofnameen']),
'bossworkposten' => strval($data['bossworkposten']),
'dategive' => iconv('utf-8','cp1251',strval($data['dategive'])),
'series' => strval($data['series']),
'number' => strval($data['number']),
'lastname' => strval($data['lastnameen']),
'firstname' => strval($data['firstnameen']),
'middlename' => strval($data['middlenameEn']),
'qualification' => strval($data['educationqualificationnameen']),
'specdirprofcode' => strval($data['specdirprofcode']),
'boss' => 'Melnychuk P.P.',
);
if ($data['award'] == 3)
$arr2[] = generate_array($ukr, $eng);
else
$arr1[] = generate_array($ukr, $eng);
/*echo '<pre>';
print_r($document);
echo '</pre>';
var_dump($ukr);*/
}
$id = uniqid();
$path1 = generate($_FILES['xmlfile']['name'].'_��������_'.$id.'.doc',$arr1);
$path2 = generate($_FILES['xmlfile']['name'].'_�������_'.$id.'.doc',$arr2);
echo "������: {$count} ��.</div>";
echo "<div style=\"margin-top:5px;\"><a href=\"/diplom/{$path1}\">�������� ������� (".count($arr1)." ��.)</a></div>";
echo "<div style=\"margin-top:5px;\"><a href=\"/diplom/{$path2}\">���� ��� � �������� (".count($arr2)." ��.)</a></div>";
echo "<br/><br/>";
echo "<div><a href=\"/diplom/\">����������� �� �������</a></div>";
die;
}
?>
<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta charset="windows-1251">
</head>
<body>
<h1>������� ��������� Word-��������� �� XML-������� � ����������� ��� �������</h1>
<form name="" method="post" enctype="multipart/form-data">
<div><input type="file" name="xmlfile" /></div>
<div style="margin-top:20px;"><button type="submit" style="font-size:20px; padding:10px;">���������� Word-�����</button></div>
</form>
</body>
</html>
|