diff --git a/csv_check.php b/csv_check.php
index 273c728..12b3166 100644
--- a/csv_check.php
+++ b/csv_check.php
@@ -1,376 +1,376 @@
- $fieldCategory) {
- $allowed = array_merge($allowed, array_keys($fieldCategory));
-
- // Extended operations for events
- if (strpos($categoryName, $basis['event']) !== false) {
- foreach ($fieldCategory as $key => $value) {
- if (strpos($key, "_annotation") !== false) continue;
- if (strpos($key, "_sure") !== false) $eventpartsure[] = $key;
- else $eventpart[] = $key;
- }
- }
-
- foreach ($fieldCategory as $key => $value) {
- if (!empty($value["dependsOn"])) {
- $fieldsWithDependency[$key] = $value['dependsOn'];
- }
- if (!empty($value["allowedValues"])) {
- $fieldsWithAllowedValueSet[$key] = $value['allowedValues'];
- }
- }
-
-}
-
-$allowed_inclusion_kind_of = array('inclusion_kind_of', 'Schenkung', 'Kauf', 'Grabung', 'Notbergung', 'Erbschaft', 'Stiftung', 'Enteignung', 'Ursprungsbestand', 'Ajándékozás','Vétel','Feltárás','Hivatalos átadás','Csere','Gyűjtés','Saját előállítás','Törzsanyag','Letét', 'endowment', 'dispossession', 'old stock', '');
-
-///// Check #1
-//echo '
';print_r($allowed);echo '
';
-echo '1: Only allowed tags (column names) used?';
-$fp = fopen ( $csv_datei, 'r' );
-$y = 1;
-$error = 0;
-$zeile = fgetcsv( $fp, 100000, ';' );
-for ($x = 0; $x < count($zeile); $x++) {
-
- $zeile[$x] = str_replace("\xEF\xBB\xBF", "", $zeile[$x]);
- $inhalt[$y][$x] = $zeile[$x];
- if (!in_array($inhalt[1][$x], $allowed)) {
- echo '
ERROR in column ' . $x . ' created by value: ' . $inhalt[1][$x] . '';
- $error = $error + 1;
- }
- //echo '
';var_dump($inhalt[1][$x]);
-}
-fclose($fp);
-$erstezeile = $zeile;
-if ($error != 0) echo '
Not allowed tags found !'; else echo '
Only allowed tags used !';
-
-//// Check #2
-echo '
2: Not allowed multiple use of tags (column names)?';
-$compare = array_unique($zeile);
-
-$result = identical_values($zeile, $compare);
-if ($result == false) {
- echo '
There are dublicate column names !';
- $error = $error + 1;
-}
-else {
- echo '
No dublicate column names !';
-}
-
-
-//// Get values into memory for following checks
-$fp = fopen ( $csv_datei, 'r' );
-$y = 0;
-while ($zeile = fgetcsv($fp, 100000, ';')) {
-
- $y++;
- for ($x = 0; $x < count ( $zeile ); $x++) {
- $inhalt[$y][$x] = str_replace("'", "\'", $zeile[$x]);
- }
-}
-fclose($fp);
-
-///// Check #3
-echo '
3: Mandatory tags available and always filled in?';
-unset($inv_array);
-$inv_error = 0;
-
-function get_duplicates($array) {
- return array_unique( array_diff_assoc( $array, array_unique( $array ) ) );
-
-}
-
-$mandatory = array('inventory_number','object_type','object_title','object_description');
-for ($i = 0; $i < count($mandatory); $i++) {
- if (!in_array($mandatory[$i], $erstezeile)) {
- echo '
Mandatory: Column ' . $mandatory[$i] . ' missing';
- $error = $error + 1;
- $inv_error = $inv_error + 1;
- }
- else {
- $spaltenr = array_search($mandatory[$i], $erstezeile);
- for ($j = 0; $j < $y; $j++) {
- if ($inhalt[$j + 1][$spaltenr] == '') {
- echo '
Missing value for ' . $mandatory[$i] . ' in row ' . ($j + 1) . '';
- $error = $error + 1;
- $inv_error = $inv_error + 1;
- }
- if ($mandatory[$i] == 'inventory_number') {
- $inv_array[] = $inhalt[$j + 1][$spaltenr];
- }
- }
- }
-}
-if ($inv_error == 0) echo '
All mandatory tags available and with values !';
-
-
-///// Check #4
-echo '
4: Inventory_number unique ?';
-if (in_array('inventory_number', $erstezeile)) {
- $doppelte_inv = get_duplicates($inv_array);
- $doppelte_inv = array_values($doppelte_inv);
- if (count($doppelte_inv) > 0) {
- for ($i = 0; $i < count($doppelte_inv); $i++)
- {
- echo '
Multiple use of inventory_number ' . $doppelte_inv[$i] . '';
- $error = $error + 1;
- }
- }
- else echo '
All inventory_numbers are unique !';
-}
-else
-{
- echo '
Aborted, column inventory_number is missing';
- $error = $error + 1;
-}
-
-///// Check #5
-echo '
5: Dependent colums observed ?
';
-
-
-// Check for correct handling of dependent fields
-foreach ($fieldsWithDependency as $tField => $tDependentFields) {
-
- if (array_search($tField, $erstezeile) === false) continue;
-
- foreach ($tDependentFields as $tDependentField) {
- if (array_search($tDependentField, $erstezeile) === false) {
- $depencymessage[] = "Dependency issue at column $tField: Corresponding column $tDependentField is missing";
- }
- }
-
-}
-
-if (isset($depencymessage) and $depencymessage != '') {
- echo 'Dependent columns were not observed !';
- for ($i = 0; $i < count ($depencymessage); $i++)
- {
- echo '
' . $depencymessage[$i];
- $error = $error + 1;
- }
-}
-else {
- echo 'Dependent columns were observed !';
-}
-
-///// Check #6
-echo '
6: Dependency of content observed?';
-
-$crosscheck1 = array('object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value');
-$crosscheck2 = array('object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit');
-
-$depcon_error = 0;
-for ($l = 0; $l < count($crosscheck1); $l++) {
-
- if (in_array($crosscheck1[$l], $erstezeile)) {
-
- for ($j = 1; $j < ($y + 1); $j++) {
- if ($inhalt[$j][array_search($crosscheck2[$l], $erstezeile)] !== '' and $inhalt[$j][array_search($crosscheck1[$l], $erstezeile)] == '') {
- echo '
Tag ' . $crosscheck2[$l] . ' given but no entry for ' . $crosscheck1[$l] . ' (row ' . $j . ')';
- $depcon_error = $depcon_error + 1;
- }
- }
-
- }
-
-}
-
-for ($l = 0; $l < count($eventpart); $l++) {
- if (in_array($eventpart[$l], $erstezeile)) {
- for ($j = 1; $j < ($y + 1); $j++) {
- if ($inhalt[$j][array_search($eventpartsure[$l], $erstezeile)] !== '' and $inhalt[$j][array_search($eventpart[$l], $erstezeile)] == '') {
- echo '
Tag ' . $eventpartsure[$l] . ' given but no entry for ' . $eventpart[$l] . ' (row ' . $j . ')';
- $depcon_error = $depcon_error + 1;
- }
- }
- }
-}
-
-if (in_array('dimensions_separate_show_md', $erstezeile)) {
- for ($j = 1; $j < ($y + 1); $j++)
- {
- if ($inhalt[$j][array_search('dimensions_separate_show_md', $erstezeile)] !== '' and ($inhalt[$j][array_search('dimensions_separate_length_value', $erstezeile)] == '') and $inhalt[$j][array_search('dimensions_separate_width_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_heigt_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_weight_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_diameter_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_wall_thickness_value', $erstezeile)] == '') {
- echo '
Tag dimensions_separate_show_md given but no separate values available (row ' . $j . ')';
- $depcon_error = $depcon_error + 1;
- }
- }
-}
-
-if (in_array('dimensions_separate_show_extern', $erstezeile)) {
- for ($j = 1; $j < ($y + 1); $j++) {
- if ($inhalt[$j][array_search('dimensions_separate_show_extern', $erstezeile)] !== '' and ($inhalt[$j][array_search('dimensions_separate_length_value', $erstezeile)] == '') and $inhalt[$j][array_search('dimensions_separate_width_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_heigt_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_weight_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_diameter_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_wall_thickness_value', $erstezeile)] == '') {
- echo '
Tag dimensions_separate_show_extern given but no separate values available (row ' . $j . ')';
- $depcon_error = $depcon_error + 1;
- }
- }
-}
-/*
-for ($im=1;$im<11;$im++)
-{
- if (in_array('image_name'.$im,$erstezeile))
- {
- for ($j=1;$j<($y+1);$j++)
- {
- if ($inhalt[$j][array_search('image_rights'.$im,$erstezeile)]!=='')
- {
- echo '
TAG image_name'.$im.' given but no value available for image_rights'.$im.' (row '.$j.')';
- $depcon_error=$depcon_error+1;
- }
- if ($inhalt[$j][array_search('image_visible'.$im,$erstezeile)]!=='')
- {
- echo '
TAG image_name'.$im.' given but no value available for image_visible'.$im.' (row '.$j.')';
- $depcon_error=$depcon_error+1;
- }
- }
- }
-}
-*/
-if ($depcon_error == 0) echo '
Dependency of content was observed !';
-
-///// Check #7
-echo '
7: Not allowed values in controlled lists?
';
-for ($i = 2; $i <= $y; $i++) {
-
- foreach ($inhalt[$i] as $key => $value) {
-
- $columnName = $inhalt[1][$key];
- // If the field is not restricted, then continue
- if (!isset($fieldsWithAllowedValueSet[$columnName])) continue;
-
- // For others: check if the value is from the list of allowed values.
- if (!in_array($value, $fieldsWithAllowedValueSet[$columnName])) {
-
- // It may be that the value is empty together with all dependent fields,
- // because it's in a repeat field that was needed earlier.
- if (empty($value) && !empty($fieldsWithDependency[$columnName])) {
-
- $allDependentsEmpty = true;
- foreach ($fieldsWithDependency[$columnName] as $depField) {
- // Find keys of dependent field
- $depFieldKey = array_search($depField, $inhalt[1]);
- if (!empty($inhalt[$i][$depFieldKey])) {
- $allDependentsEmpty = false;
- break;
- }
- }
- if ($allDependentsEmpty === true) continue;
-
- }
-
- $errormessage[] = "Disallowed value in column {$columnName}
on row {$i}
: " . $value . " (allowed values: " . implode(", ", $fieldsWithAllowedValueSet[$columnName]) . ")";
- }
-
- }
-}
-
-if (isset($errormessage) and $errormessage != '') {
- echo 'Columns with controlled values contain invalid values !';
- for ($i = 0; $i < count ($errormessage); $i++) {
- echo '
' . $errormessage[$i];
- $error = $error + 1;
- }
-}
-else
-{
- echo 'Values in controlled fields are all valid !';
-}
-
-///// Check #8
-unset($errormessage);
-echo '
8: Main image or main resource given?
';
-$hasanyimage = 0;
-for ($im = 1; $im < 29; $im++)
-{
- if (array_search('image_name' . $im, $erstezeile) != '') {$imagemain[$im]['name'] = array_search('image_name' . $im, $erstezeile);$hasanyimage++;
- }
- if (array_search('image_visible' . $im, $erstezeile) != '') $imagemain[$im]['visible'] = array_search('image_visible' . $im, $erstezeile);
- if (array_search('image_main' . $im, $erstezeile) != '') $imagemain[$im]['main'] = array_search('image_main' . $im, $erstezeile);
-}
-
-if ($hasanyimage > 0) {
- $imagemain = array_values($imagemain);
- for ($i = 1; $i <= $y; $i++)
- {
- if ($i > 1) {
- $maimg[$i] = 0;
- //check if in a row any image_name is given
- $hatimg[$i] = 0;
- for ($im = 0; $im < count($imagemain); $im++)
- {
- if ($inhalt[$i][$imagemain[$im]['name']] != '') $hatimg[$i]++;
- }
- if ($hatimg[$i] > 0) {
- // first check: how many main-images?
- for ($im = 0; $im < count($imagemain); $im++)
- {
- if ($inhalt[$i][$imagemain[$im]['main']] == 'y') {$maimg[$i]++;$merk = $im;
- }
- }
- // if there is exacly one main-image, is it visible?
- if ($maimg[$i] == 1) {
- if ($inhalt[$i][$imagemain[$merk]['visible']] == 'n') {
- $errormessage[] = 'Main image in row ' . $i . ' is not visible';
- }
- }
- }
- }
- if ($i > 1 and $maimg[$i] == 0 and $hatimg[$i] > 0) $errormessage[] = 'There is no visible main image given in row ' . $i . '';
- if ($i > 1 and $maimg[$i] > 1 and $hatimg[$i] > 0) $errormessage[] = 'There are ' . $maimg[$i] . ' main images given in row ' . $i . '';
- }
-
- if (isset($errormessage) and $errormessage != '') {
- echo 'There is not one main image for each object !';
- for ($i = 0; $i < count($errormessage); $i++) {
- echo '
' . $errormessage[$i];
- $error++;
- }
- }
- else {
- echo 'For each object that has images attached exactly one main image is given !';
- }
-}
-else {
- echo 'No images to be imported !';
-}
-
-echo '
';
-if ($error + $depcon_error > 0) {
- echo '
- Error(s) found: ' . ($error + $depcon_error) . '
';
-}
-else {
- echo 'Create XML for md:import (utf8)
';
-}
+ $fieldCategory) {
+ $allowed = array_merge($allowed, array_keys($fieldCategory));
+
+ // Extended operations for events
+ if (strpos($categoryName, $basis['event']) !== false) {
+ foreach ($fieldCategory as $key => $value) {
+ if (strpos($key, "_annotation") !== false) continue;
+ if (strpos($key, "_sure") !== false) $eventpartsure[] = $key;
+ else $eventpart[] = $key;
+ }
+ }
+
+ foreach ($fieldCategory as $key => $value) {
+ if (!empty($value["dependsOn"])) {
+ $fieldsWithDependency[$key] = $value['dependsOn'];
+ }
+ if (!empty($value["allowedValues"])) {
+ $fieldsWithAllowedValueSet[$key] = $value['allowedValues'];
+ }
+ }
+
+}
+
+$allowed_inclusion_kind_of = ['inclusion_kind_of', 'Schenkung', 'Kauf', 'Grabung', 'Notbergung', 'Erbschaft', 'Stiftung', 'Enteignung', 'Ursprungsbestand', 'Ajándékozás','Vétel','Feltárás','Hivatalos átadás','Csere','Gyűjtés','Saját előállítás','Törzsanyag','Letét', 'endowment', 'dispossession', 'old stock', ''];
+
+///// Check #1
+//echo '';print_r($allowed);echo '
';
+echo '1: Only allowed tags (column names) used?';
+$fp = fopen ( $csv_datei, 'r' );
+$y = 1;
+$error = 0;
+$zeile = fgetcsv( $fp, 100000, ';' );
+for ($x = 0; $x < count($zeile); $x++) {
+
+ $zeile[$x] = str_replace("\xEF\xBB\xBF", "", $zeile[$x]);
+ $inhalt[$y][$x] = $zeile[$x];
+ if (!in_array($inhalt[1][$x], $allowed)) {
+ echo '
ERROR in column ' . $x . ' created by value: ' . $inhalt[1][$x] . '';
+ $error = $error + 1;
+ }
+ //echo '
';var_dump($inhalt[1][$x]);
+}
+fclose($fp);
+$erstezeile = $zeile;
+if ($error != 0) echo '
Not allowed tags found !'; else echo '
Only allowed tags used !';
+
+//// Check #2
+echo '
2: Not allowed multiple use of tags (column names)?';
+$compare = array_unique($zeile);
+
+$result = identical_values($zeile, $compare);
+if ($result == false) {
+ echo '
There are dublicate column names !';
+ $error = $error + 1;
+}
+else {
+ echo '
No dublicate column names !';
+}
+
+
+//// Get values into memory for following checks
+$fp = fopen ( $csv_datei, 'r' );
+$y = 0;
+while ($zeile = fgetcsv($fp, 100000, ';')) {
+
+ $y++;
+ for ($x = 0; $x < count ( $zeile ); $x++) {
+ $inhalt[$y][$x] = str_replace("'", "\'", $zeile[$x]);
+ }
+}
+fclose($fp);
+
+///// Check #3
+echo '
3: Mandatory tags available and always filled in?';
+unset($inv_array);
+$inv_error = 0;
+
+function get_duplicates($array) {
+ return array_unique( array_diff_assoc( $array, array_unique( $array ) ) );
+
+}
+
+$mandatory = ['inventory_number','object_type','object_title','object_description'];
+for ($i = 0; $i < count($mandatory); $i++) {
+ if (!in_array($mandatory[$i], $erstezeile)) {
+ echo '
Mandatory: Column ' . $mandatory[$i] . ' missing';
+ $error = $error + 1;
+ $inv_error = $inv_error + 1;
+ }
+ else {
+ $spaltenr = array_search($mandatory[$i], $erstezeile);
+ for ($j = 0; $j < $y; $j++) {
+ if ($inhalt[$j + 1][$spaltenr] == '') {
+ echo '
Missing value for ' . $mandatory[$i] . ' in row ' . ($j + 1) . '';
+ $error = $error + 1;
+ $inv_error = $inv_error + 1;
+ }
+ if ($mandatory[$i] == 'inventory_number') {
+ $inv_array[] = $inhalt[$j + 1][$spaltenr];
+ }
+ }
+ }
+}
+if ($inv_error == 0) echo '
All mandatory tags available and with values !';
+
+
+///// Check #4
+echo '
4: Inventory_number unique ?';
+if (in_array('inventory_number', $erstezeile)) {
+ $doppelte_inv = get_duplicates($inv_array);
+ $doppelte_inv = array_values($doppelte_inv);
+ if (count($doppelte_inv) > 0) {
+ for ($i = 0; $i < count($doppelte_inv); $i++)
+ {
+ echo '
Multiple use of inventory_number ' . $doppelte_inv[$i] . '';
+ $error = $error + 1;
+ }
+ }
+ else echo '
All inventory_numbers are unique !';
+}
+else
+{
+ echo '
Aborted, column inventory_number is missing';
+ $error = $error + 1;
+}
+
+///// Check #5
+echo '
5: Dependent colums observed ?
';
+
+
+// Check for correct handling of dependent fields
+foreach ($fieldsWithDependency as $tField => $tDependentFields) {
+
+ if (array_search($tField, $erstezeile) === false) continue;
+
+ foreach ($tDependentFields as $tDependentField) {
+ if (array_search($tDependentField, $erstezeile) === false) {
+ $depencymessage[] = "Dependency issue at column $tField: Corresponding column $tDependentField is missing";
+ }
+ }
+
+}
+
+if (isset($depencymessage) and $depencymessage != '') {
+ echo 'Dependent columns were not observed !';
+ for ($i = 0; $i < count ($depencymessage); $i++)
+ {
+ echo '
' . $depencymessage[$i];
+ $error = $error + 1;
+ }
+}
+else {
+ echo 'Dependent columns were observed !';
+}
+
+///// Check #6
+echo '
6: Dependency of content observed?';
+
+$crosscheck1 = ['object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value'];
+$crosscheck2 = ['object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit'];
+
+$depcon_error = 0;
+for ($l = 0; $l < count($crosscheck1); $l++) {
+
+ if (in_array($crosscheck1[$l], $erstezeile)) {
+
+ for ($j = 1; $j < ($y + 1); $j++) {
+ if ($inhalt[$j][array_search($crosscheck2[$l], $erstezeile)] !== '' and $inhalt[$j][array_search($crosscheck1[$l], $erstezeile)] == '') {
+ echo '
Tag ' . $crosscheck2[$l] . ' given but no entry for ' . $crosscheck1[$l] . ' (row ' . $j . ')';
+ $depcon_error = $depcon_error + 1;
+ }
+ }
+
+ }
+
+}
+
+for ($l = 0; $l < count($eventpart); $l++) {
+ if (in_array($eventpart[$l], $erstezeile)) {
+ for ($j = 1; $j < ($y + 1); $j++) {
+ if ($inhalt[$j][array_search($eventpartsure[$l], $erstezeile)] !== '' and $inhalt[$j][array_search($eventpart[$l], $erstezeile)] == '') {
+ echo '
Tag ' . $eventpartsure[$l] . ' given but no entry for ' . $eventpart[$l] . ' (row ' . $j . ')';
+ $depcon_error = $depcon_error + 1;
+ }
+ }
+ }
+}
+
+if (in_array('dimensions_separate_show_md', $erstezeile)) {
+ for ($j = 1; $j < ($y + 1); $j++)
+ {
+ if ($inhalt[$j][array_search('dimensions_separate_show_md', $erstezeile)] !== '' and ($inhalt[$j][array_search('dimensions_separate_length_value', $erstezeile)] == '') and $inhalt[$j][array_search('dimensions_separate_width_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_heigt_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_weight_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_diameter_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_wall_thickness_value', $erstezeile)] == '') {
+ echo '
Tag dimensions_separate_show_md given but no separate values available (row ' . $j . ')';
+ $depcon_error = $depcon_error + 1;
+ }
+ }
+}
+
+if (in_array('dimensions_separate_show_extern', $erstezeile)) {
+ for ($j = 1; $j < ($y + 1); $j++) {
+ if ($inhalt[$j][array_search('dimensions_separate_show_extern', $erstezeile)] !== '' and ($inhalt[$j][array_search('dimensions_separate_length_value', $erstezeile)] == '') and $inhalt[$j][array_search('dimensions_separate_width_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_heigt_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_weight_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_diameter_value', $erstezeile)] == '' and $inhalt[$j][array_search('dimensions_separate_wall_thickness_value', $erstezeile)] == '') {
+ echo '
Tag dimensions_separate_show_extern given but no separate values available (row ' . $j . ')';
+ $depcon_error = $depcon_error + 1;
+ }
+ }
+}
+/*
+for ($im=1;$im<11;$im++)
+{
+ if (in_array('image_name'.$im,$erstezeile))
+ {
+ for ($j=1;$j<($y+1);$j++)
+ {
+ if ($inhalt[$j][array_search('image_rights'.$im,$erstezeile)]!=='')
+ {
+ echo '
TAG image_name'.$im.' given but no value available for image_rights'.$im.' (row '.$j.')';
+ $depcon_error=$depcon_error+1;
+ }
+ if ($inhalt[$j][array_search('image_visible'.$im,$erstezeile)]!=='')
+ {
+ echo '
TAG image_name'.$im.' given but no value available for image_visible'.$im.' (row '.$j.')';
+ $depcon_error=$depcon_error+1;
+ }
+ }
+ }
+}
+*/
+if ($depcon_error == 0) echo '
Dependency of content was observed !';
+
+///// Check #7
+echo '
7: Not allowed values in controlled lists?
';
+for ($i = 2; $i <= $y; $i++) {
+
+ foreach ($inhalt[$i] as $key => $value) {
+
+ $columnName = $inhalt[1][$key];
+ // If the field is not restricted, then continue
+ if (!isset($fieldsWithAllowedValueSet[$columnName])) continue;
+
+ // For others: check if the value is from the list of allowed values.
+ if (!in_array($value, $fieldsWithAllowedValueSet[$columnName])) {
+
+ // It may be that the value is empty together with all dependent fields,
+ // because it's in a repeat field that was needed earlier.
+ if (empty($value) && !empty($fieldsWithDependency[$columnName])) {
+
+ $allDependentsEmpty = true;
+ foreach ($fieldsWithDependency[$columnName] as $depField) {
+ // Find keys of dependent field
+ $depFieldKey = array_search($depField, $inhalt[1]);
+ if (!empty($inhalt[$i][$depFieldKey])) {
+ $allDependentsEmpty = false;
+ break;
+ }
+ }
+ if ($allDependentsEmpty === true) continue;
+
+ }
+
+ $errormessage[] = "Disallowed value in column {$columnName}
on row {$i}
: " . $value . " (allowed values: " . implode(", ", $fieldsWithAllowedValueSet[$columnName]) . ")";
+ }
+
+ }
+}
+
+if (isset($errormessage) and $errormessage != '') {
+ echo 'Columns with controlled values contain invalid values !';
+ for ($i = 0; $i < count ($errormessage); $i++) {
+ echo '
' . $errormessage[$i];
+ $error = $error + 1;
+ }
+}
+else
+{
+ echo 'Values in controlled fields are all valid !';
+}
+
+///// Check #8
+unset($errormessage);
+echo '
8: Main image or main resource given?
';
+$hasanyimage = 0;
+for ($im = 1; $im < 29; $im++)
+{
+ if (array_search('image_name' . $im, $erstezeile) != '') {$imagemain[$im]['name'] = array_search('image_name' . $im, $erstezeile);$hasanyimage++;
+ }
+ if (array_search('image_visible' . $im, $erstezeile) != '') $imagemain[$im]['visible'] = array_search('image_visible' . $im, $erstezeile);
+ if (array_search('image_main' . $im, $erstezeile) != '') $imagemain[$im]['main'] = array_search('image_main' . $im, $erstezeile);
+}
+
+if ($hasanyimage > 0) {
+ $imagemain = array_values($imagemain);
+ for ($i = 1; $i <= $y; $i++)
+ {
+ if ($i > 1) {
+ $maimg[$i] = 0;
+ //check if in a row any image_name is given
+ $hatimg[$i] = 0;
+ for ($im = 0; $im < count($imagemain); $im++)
+ {
+ if ($inhalt[$i][$imagemain[$im]['name']] != '') $hatimg[$i]++;
+ }
+ if ($hatimg[$i] > 0) {
+ // first check: how many main-images?
+ for ($im = 0; $im < count($imagemain); $im++)
+ {
+ if ($inhalt[$i][$imagemain[$im]['main']] == 'y') {$maimg[$i]++;$merk = $im;
+ }
+ }
+ // if there is exacly one main-image, is it visible?
+ if ($maimg[$i] == 1) {
+ if ($inhalt[$i][$imagemain[$merk]['visible']] == 'n') {
+ $errormessage[] = 'Main image in row ' . $i . ' is not visible';
+ }
+ }
+ }
+ }
+ if ($i > 1 and $maimg[$i] == 0 and $hatimg[$i] > 0) $errormessage[] = 'There is no visible main image given in row ' . $i . '';
+ if ($i > 1 and $maimg[$i] > 1 and $hatimg[$i] > 0) $errormessage[] = 'There are ' . $maimg[$i] . ' main images given in row ' . $i . '';
+ }
+
+ if (isset($errormessage) and $errormessage != '') {
+ echo 'There is not one main image for each object !';
+ for ($i = 0; $i < count($errormessage); $i++) {
+ echo '
' . $errormessage[$i];
+ $error++;
+ }
+ }
+ else {
+ echo 'For each object that has images attached exactly one main image is given !';
+ }
+}
+else {
+ echo 'No images to be imported !';
+}
+
+echo '
';
+if ($error + $depcon_error > 0) {
+ echo '
+ Error(s) found: ' . ($error + $depcon_error) . '
';
+}
+else {
+ echo 'Create XML for md:import (utf8)
';
+}
diff --git a/inc/zeichen.php b/inc/zeichen.php
index 4e79942..1fc0bf6 100644
--- a/inc/zeichen.php
+++ b/inc/zeichen.php
@@ -1,7 +1,13 @@
zipFile = tmpfile();
- } else {
- $this->zipData = "";
- }
- }
+ /**
+ * Constructor.
+ *
+ * @param $useZipFile boolean. Write temp zip data to tempFile? Default false
+ */
+ function __construct($useZipFile = false) {
+ if ($useZipFile) {
+ $this->zipFile = tmpfile();
+ } else {
+ $this->zipData = "";
+ }
+ }
- function __destruct() {
- if (!is_null($this->zipFile)) {
- fclose($this->zipFile);
- }
- $this->zipData= null;
- }
+ function __destruct() {
+ if (!is_null($this->zipFile)) {
+ fclose($this->zipFile);
+ }
+ $this->zipData= null;
+ }
- /**
- * Set Zip archive comment.
- *
- * @param string $newComment New comment. null to clear.
- */
- public function setComment($newComment = null) {
- $this->zipComment = $newComment;
- }
+ /**
+ * Set Zip archive comment.
+ *
+ * @param string $newComment New comment. null to clear.
+ */
+ public function setComment($newComment = null) {
+ $this->zipComment = $newComment;
+ }
- /**
- * Set zip file to write zip data to.
- * This will cause all present and future data written to this class to be written to this file.
- * This can be used at any time, even after the Zip Archive have been finalized. Any previous file will be closed.
- * Warning: If the given file already exists, it will be overwritten.
- *
- * @param string $fileName
- */
- public function setZipFile($fileName) {
- if (file_exists($fileName)) {
- unlink ($fileName);
- }
- $fd=fopen($fileName, "x+b");
- if (!is_null($this->zipFile)) {
- rewind($this->zipFile);
- while(!feof($this->zipFile)) {
- fwrite($fd, fread($this->zipFile, $this->streamChunkSize));
- }
-
- fclose($this->zipFile);
- } else {
- fwrite($fd, $this->zipData);
- $this->zipData = null;
- }
- $this->zipFile = $fd;
- }
+ /**
+ * Set zip file to write zip data to.
+ * This will cause all present and future data written to this class to be written to this file.
+ * This can be used at any time, even after the Zip Archive have been finalized. Any previous file will be closed.
+ * Warning: If the given file already exists, it will be overwritten.
+ *
+ * @param string $fileName
+ */
+ public function setZipFile($fileName) {
+ if (file_exists($fileName)) {
+ unlink ($fileName);
+ }
+ $fd=fopen($fileName, "x+b");
+ if (!is_null($this->zipFile)) {
+ rewind($this->zipFile);
+ while(!feof($this->zipFile)) {
+ fwrite($fd, fread($this->zipFile, $this->streamChunkSize));
+ }
+
+ fclose($this->zipFile);
+ } else {
+ fwrite($fd, $this->zipData);
+ $this->zipData = null;
+ }
+ $this->zipFile = $fd;
+ }
- /**
- * Add an empty directory entry to the zip archive.
- * Basically this is only used if an empty directory is added.
- *
- * @param string $directoryPath Directory Path and name to be added to the archive.
- * @param int $timestamp (Optional) Timestamp for the added directory, if omitted or set to 0, the current time will be used.
- * @param string $fileComment (Optional) Comment to be added to the archive for this directory. To use fileComment, timestamp must be given.
- */
- public function addDirectory($directoryPath, $timestamp = 0, $fileComment = null) {
- if ($this->isFinalized) {
- return;
- }
- $this->buildZipEntry($directoryPath, $fileComment, "\x00\x00", "\x00\x00", $timestamp, "\x00\x00\x00\x00", 0, 0, 16);
- }
+ /**
+ * Add an empty directory entry to the zip archive.
+ * Basically this is only used if an empty directory is added.
+ *
+ * @param string $directoryPath Directory Path and name to be added to the archive.
+ * @param int $timestamp (Optional) Timestamp for the added directory, if omitted or set to 0, the current time will be used.
+ * @param string $fileComment (Optional) Comment to be added to the archive for this directory. To use fileComment, timestamp must be given.
+ */
+ public function addDirectory($directoryPath, $timestamp = 0, $fileComment = null) {
+ if ($this->isFinalized) {
+ return;
+ }
+ $this->buildZipEntry($directoryPath, $fileComment, "\x00\x00", "\x00\x00", $timestamp, "\x00\x00\x00\x00", 0, 0, 16);
+ }
- /**
- * Add a file to the archive at the specified location and file name.
- *
- * @param string $data File data.
- * @param string $filePath Filepath and name to be used in the archive.
- * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
- * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
- */
- public function addFile($data, $filePath, $timestamp = 0, $fileComment = null) {
- if ($this->isFinalized) {
- return;
- }
+ /**
+ * Add a file to the archive at the specified location and file name.
+ *
+ * @param string $data File data.
+ * @param string $filePath Filepath and name to be used in the archive.
+ * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
+ * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
+ */
+ public function addFile($data, $filePath, $timestamp = 0, $fileComment = null) {
+ if ($this->isFinalized) {
+ return;
+ }
- $gzType = "\x08\x00"; // Compression type 8 = deflate
- $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
- $dataLength = strlen($data);
- $fileCRC32 = pack("V", crc32($data));
+ $gzType = "\x08\x00"; // Compression type 8 = deflate
+ $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
+ $dataLength = strlen($data);
+ $fileCRC32 = pack("V", crc32($data));
- $gzData = gzcompress($data);
- $gzData = substr( substr($gzData, 0, strlen($gzData) - 4), 2); // gzcompress adds a 2 byte header and 4 byte CRC we can't use.
- // The 2 byte header does contain useful data, though in this case the 2 parameters we'd be interrested in will always be 8 for compression type, and 2 for General purpose flag.
- $gzLength = strlen($gzData);
+ $gzData = gzcompress($data);
+ $gzData = substr( substr($gzData, 0, strlen($gzData) - 4), 2); // gzcompress adds a 2 byte header and 4 byte CRC we can't use.
+ // The 2 byte header does contain useful data, though in this case the 2 parameters we'd be interrested in will always be 8 for compression type, and 2 for General purpose flag.
+ $gzLength = strlen($gzData);
- if ($gzLength >= $dataLength) {
- $gzLength = $dataLength;
- $gzData = $data;
- $gzType = "\x00\x00"; // Compression type 0 = stored
- $gpFlags = "\x00\x00"; // Compression type 0 = stored
- }
+ if ($gzLength >= $dataLength) {
+ $gzLength = $dataLength;
+ $gzData = $data;
+ $gzType = "\x00\x00"; // Compression type 0 = stored
+ $gpFlags = "\x00\x00"; // Compression type 0 = stored
+ }
- if (is_null($this->zipFile) && ($this->offset + $gzLength) > $this->zipMemoryThreshold) {
- $this->zipFile = tmpfile();
- fwrite($this->zipFile, $this->zipData);
- $this->zipData = null;
- }
+ if (is_null($this->zipFile) && ($this->offset + $gzLength) > $this->zipMemoryThreshold) {
+ $this->zipFile = tmpfile();
+ fwrite($this->zipFile, $this->zipData);
+ $this->zipData = null;
+ }
- $this->buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, 32);
- if (is_null($this->zipFile)) {
- $this->zipData .= $gzData;
- } else {
- fwrite($this->zipFile, $gzData);
- }
- }
+ $this->buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, 32);
+ if (is_null($this->zipFile)) {
+ $this->zipData .= $gzData;
+ } else {
+ fwrite($this->zipFile, $gzData);
+ }
+ }
- /**
- * Add a file to the archive at the specified location and file name.
- *
- * @param string $dataFile File name/path.
- * @param string $filePath Filepath and name to be used in the archive.
- * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
- * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
- */
- public function addLargeFile($dataFile, $filePath, $timestamp = 0, $fileComment = null) {
- if ($this->isFinalized) {
- return;
- }
-
- $this->openStream($filePath, $timestamp, $fileComment);
+ /**
+ * Add a file to the archive at the specified location and file name.
+ *
+ * @param string $dataFile File name/path.
+ * @param string $filePath Filepath and name to be used in the archive.
+ * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
+ * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
+ */
+ public function addLargeFile($dataFile, $filePath, $timestamp = 0, $fileComment = null) {
+ if ($this->isFinalized) {
+ return;
+ }
+
+ $this->openStream($filePath, $timestamp, $fileComment);
- $fh = fopen($dataFile, "rb");
- while(!feof($fh)) {
- $this->addStreamData(fread($fh, $this->streamChunkSize));
- }
- fclose($fh);
+ $fh = fopen($dataFile, "rb");
+ while(!feof($fh)) {
+ $this->addStreamData(fread($fh, $this->streamChunkSize));
+ }
+ fclose($fh);
- $this->closeStream();
- }
+ $this->closeStream();
+ }
- /**
- * Create a stream to be used for large entries.
- *
- * @param string $filePath Filepath and name to be used in the archive.
- * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
- * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
- */
- public function openStream($filePath, $timestamp = 0, $fileComment = null) {
- if ($this->isFinalized) {
- return;
- }
+ /**
+ * Create a stream to be used for large entries.
+ *
+ * @param string $filePath Filepath and name to be used in the archive.
+ * @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
+ * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
+ */
+ public function openStream($filePath, $timestamp = 0, $fileComment = null) {
+ if ($this->isFinalized) {
+ return;
+ }
- if (is_null($this->zipFile)) {
- $this->zipFile = tmpfile();
- fwrite($this->zipFile, $this->zipData);
- $this->zipData = null;
- }
-
- if (strlen($this->streamFilePath) > 0) {
- closeStream();
- }
- $this->streamFile = tempnam(sys_get_temp_dir(), 'Zip');
- $this->streamData = gzopen($this->streamFile, "w9");
- $this->streamFilePath = $filePath;
- $this->streamTimestamp = $timestamp;
- $this->streamFileComment = $fileComment;
- $this->streamFileLength = 0;
- }
-
- public function addStreamData($data) {
- $length = gzwrite($this->streamData, $data, strlen($data));
- if ($length != strlen($data)) {
- print "Length mismatch
\n";
- }
- $this->streamFileLength += $length;
- return $length;
- }
-
- /**
- * Close the current stream.
- */
- public function closeStream() {
- if ($this->isFinalized || strlen($this->streamFilePath) == 0) {
- return;
- }
-
- fflush($this->streamData);
- gzclose($this->streamData);
-
- $gzType = "\x08\x00"; // Compression type 8 = deflate
- $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
+ if (is_null($this->zipFile)) {
+ $this->zipFile = tmpfile();
+ fwrite($this->zipFile, $this->zipData);
+ $this->zipData = null;
+ }
+
+ if (strlen($this->streamFilePath) > 0) {
+ closeStream();
+ }
+ $this->streamFile = tempnam(sys_get_temp_dir(), 'Zip');
+ $this->streamData = gzopen($this->streamFile, "w9");
+ $this->streamFilePath = $filePath;
+ $this->streamTimestamp = $timestamp;
+ $this->streamFileComment = $fileComment;
+ $this->streamFileLength = 0;
+ }
+
+ public function addStreamData($data) {
+ $length = gzwrite($this->streamData, $data, strlen($data));
+ if ($length != strlen($data)) {
+ print "Length mismatch
\n";
+ }
+ $this->streamFileLength += $length;
+ return $length;
+ }
+
+ /**
+ * Close the current stream.
+ */
+ public function closeStream() {
+ if ($this->isFinalized || strlen($this->streamFilePath) == 0) {
+ return;
+ }
+
+ fflush($this->streamData);
+ gzclose($this->streamData);
+
+ $gzType = "\x08\x00"; // Compression type 8 = deflate
+ $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
- $file_handle = fopen($this->streamFile, "rb");
- $stats = fstat($file_handle);
- $eof = $stats['size'];
-
- fseek($file_handle, $eof-8);
- $fileCRC32 = fread($file_handle, 4);
- $dataLength = $this->streamFileLength;//$gzl[1];
+ $file_handle = fopen($this->streamFile, "rb");
+ $stats = fstat($file_handle);
+ $eof = $stats['size'];
+
+ fseek($file_handle, $eof-8);
+ $fileCRC32 = fread($file_handle, 4);
+ $dataLength = $this->streamFileLength;//$gzl[1];
- $gzLength = $eof-10;
- $eof -= 9;
-
- fseek($file_handle, 10);
+ $gzLength = $eof-10;
+ $eof -= 9;
+
+ fseek($file_handle, 10);
- $this->buildZipEntry($this->streamFilePath, $this->streamFileComment, $gpFlags, $gzType, $this->streamTimestamp, $fileCRC32, $gzLength, $dataLength, 32);
- while(!feof($file_handle)) {
- fwrite($this->zipFile, fread($file_handle, $this->streamChunkSize));
- }
-
- unlink($this->streamFile);
- $this->streamFile = null;
- $this->streamData = null;
- $this->streamFilePath = null;
- $this->streamTimestamp = null;
- $this->streamFileComment = null;
- $this->streamFileLength = 0;
- }
+ $this->buildZipEntry($this->streamFilePath, $this->streamFileComment, $gpFlags, $gzType, $this->streamTimestamp, $fileCRC32, $gzLength, $dataLength, 32);
+ while(!feof($file_handle)) {
+ fwrite($this->zipFile, fread($file_handle, $this->streamChunkSize));
+ }
+
+ unlink($this->streamFile);
+ $this->streamFile = null;
+ $this->streamData = null;
+ $this->streamFilePath = null;
+ $this->streamTimestamp = null;
+ $this->streamFileComment = null;
+ $this->streamFileLength = 0;
+ }
- /**
- * Close the archive.
- * A closed archive can no longer have new files added to it.
- */
- public function finalize() {
- if(!$this->isFinalized) {
- if (strlen($this->streamFilePath) > 0) {
- $this->closeStream();
- }
- $cd = implode("", $this->cdRec);
-
- $cdRec = $cd . $this->endOfCentralDirectory
- . pack("v", sizeof($this->cdRec))
- . pack("v", sizeof($this->cdRec))
- . pack("V", strlen($cd))
- . pack("V", $this->offset);
- if (!is_null($this->zipComment)) {
- $cdRec .= pack("v", strlen($this->zipComment)) . $this->zipComment;
- } else {
- $cdRec .= "\x00\x00";
- }
-
- if (is_null($this->zipFile)) {
- $this->zipData .= $cdRec;
- } else {
- fwrite($this->zipFile, $cdRec);
- fflush($this->zipFile);
- }
- $this->isFinalized = true;
- $cd = null;
- $this->cdRec = null;
- }
- }
+ /**
+ * Close the archive.
+ * A closed archive can no longer have new files added to it.
+ */
+ public function finalize() {
+ if(!$this->isFinalized) {
+ if (strlen($this->streamFilePath) > 0) {
+ $this->closeStream();
+ }
+ $cd = implode("", $this->cdRec);
+
+ $cdRec = $cd . $this->endOfCentralDirectory
+ . pack("v", sizeof($this->cdRec))
+ . pack("v", sizeof($this->cdRec))
+ . pack("V", strlen($cd))
+ . pack("V", $this->offset);
+ if (!is_null($this->zipComment)) {
+ $cdRec .= pack("v", strlen($this->zipComment)) . $this->zipComment;
+ } else {
+ $cdRec .= "\x00\x00";
+ }
+
+ if (is_null($this->zipFile)) {
+ $this->zipData .= $cdRec;
+ } else {
+ fwrite($this->zipFile, $cdRec);
+ fflush($this->zipFile);
+ }
+ $this->isFinalized = true;
+ $cd = null;
+ $this->cdRec = null;
+ }
+ }
- /**
- * Get the handle ressource for the archive zip file.
- * If the zip haven't been finalized yet, this will cause it to become finalized
- *
- * @return zip file handle
- */
- public function getZipFile() {
- if(!$this->isFinalized) {
- $this->finalize();
- }
- if (is_null($this->zipFile)) {
- $this->zipFile = tmpfile();
- fwrite($this->zipFile, $this->zipData);
- $this->zipData = null;
- }
- rewind($this->zipFile);
- return $this->zipFile;
- }
+ /**
+ * Get the handle ressource for the archive zip file.
+ * If the zip haven't been finalized yet, this will cause it to become finalized
+ *
+ * @return zip file handle
+ */
+ public function getZipFile() {
+ if(!$this->isFinalized) {
+ $this->finalize();
+ }
+ if (is_null($this->zipFile)) {
+ $this->zipFile = tmpfile();
+ fwrite($this->zipFile, $this->zipData);
+ $this->zipData = null;
+ }
+ rewind($this->zipFile);
+ return $this->zipFile;
+ }
- /**
- * Get the zip file contents
- * If the zip haven't been finalized yet, this will cause it to become finalized
- *
- * @return zip data
- */
- public function getZipData() {
- if(!$this->isFinalized) {
- $this->finalize();
- }
- if (is_null($this->zipFile)) {
- return $this->zipData;
- } else {
- rewind($this->zipFile);
- $filestat = fstat($this->zipFile);
- return fread($this->zipFile, $filestat['size']);
- }
- }
+ /**
+ * Get the zip file contents
+ * If the zip haven't been finalized yet, this will cause it to become finalized
+ *
+ * @return zip data
+ */
+ public function getZipData() {
+ if(!$this->isFinalized) {
+ $this->finalize();
+ }
+ if (is_null($this->zipFile)) {
+ return $this->zipData;
+ } else {
+ rewind($this->zipFile);
+ $filestat = fstat($this->zipFile);
+ return fread($this->zipFile, $filestat['size']);
+ }
+ }
- /**
- * Send the archive as a zip download
- *
- * @param String $fileName The name of the Zip archive, ie. "archive.zip".
- * @return void
- */
- function sendZip($fileName) {
- if(!$this->isFinalized) {
- $this->finalize();
- }
+ /**
+ * Send the archive as a zip download
+ *
+ * @param String $fileName The name of the Zip archive, ie. "archive.zip".
+ * @return void
+ */
+ function sendZip($fileName) {
+ if(!$this->isFinalized) {
+ $this->finalize();
+ }
- if (!headers_sent($headerFile, $headerLine) or die("Error: Unable to send file $fileName. HTML Headers have already been sent from $headerFile in line $headerLine
")) {
- if (ob_get_contents() === false or die("\nError: Unable to send file $fileName.epub. Output buffer contains the following text (typically warnings or errors):
" . ob_get_contents() . "
")) {
- if (ini_get('zlib.output_compression')) {
- ini_set('zlib.output_compression', 'Off');
- }
+ if (!headers_sent($headerFile, $headerLine) or die("Error: Unable to send file $fileName. HTML Headers have already been sent from $headerFile in line $headerLine
")) {
+ if (ob_get_contents() === false or die("\nError: Unable to send file $fileName.epub. Output buffer contains the following text (typically warnings or errors):
" . ob_get_contents() . "
")) {
+ if (ini_get('zlib.output_compression')) {
+ ini_set('zlib.output_compression', 'Off');
+ }
- header('Pragma: public');
- header("Last-Modified: " . gmdate("D, d M Y H:i:s T"));
- header("Expires: 0");
- header("Accept-Ranges: bytes");
- header("Connection: close");
- header("Content-Type: application/zip");
- header('Content-Disposition: attachment; filename="' . $fileName . '";' );
- header("Content-Transfer-Encoding: binary");
- header("Content-Length: ". $this->getArchiveSize());
+ header('Pragma: public');
+ header("Last-Modified: " . gmdate("D, d M Y H:i:s T"));
+ header("Expires: 0");
+ header("Accept-Ranges: bytes");
+ header("Connection: close");
+ header("Content-Type: application/zip");
+ header('Content-Disposition: attachment; filename="' . $fileName . '";' );
+ header("Content-Transfer-Encoding: binary");
+ header("Content-Length: ". $this->getArchiveSize());
- if (is_null($this->zipFile)) {
- echo $this->zipData;
- } else {
- rewind($this->zipFile);
+ if (is_null($this->zipFile)) {
+ echo $this->zipData;
+ } else {
+ rewind($this->zipFile);
- while(!feof($this->zipFile)) {
- echo fread($this->zipFile, $this->streamChunkSize);
- }
- }
- }
- }
- }
-
- public function getArchiveSize() {
- if (is_null($this->zipFile)) {
- return strlen($this->zipData);
- }
- $filestat = fstat($this->zipFile);
- return $filestat['size'];
- }
+ while(!feof($this->zipFile)) {
+ echo fread($this->zipFile, $this->streamChunkSize);
+ }
+ }
+ }
+ }
+ }
+
+ public function getArchiveSize() {
+ if (is_null($this->zipFile)) {
+ return strlen($this->zipData);
+ }
+ $filestat = fstat($this->zipFile);
+ return $filestat['size'];
+ }
- /**
- * Calculate the 2 byte dostime used in the zip entries.
- *
- * @param int $timestamp
- * @return 2-byte encoded DOS Date
- */
- private function getDosTime($timestamp = 0) {
- $timestamp = (int)$timestamp;
- $date = ($timestamp == 0 ? getdate() : getDate($timestamp));
- if ($date["year"] >= 1980) {
- return pack("V", (($date["mday"] + ($date["mon"] << 5) + (($date["year"]-1980) << 9)) << 16) |
- (($date["seconds"] >> 1) + ($date["minutes"] << 5) + ($date["hours"] << 11)));
- }
- return "\x00\x00\x00\x00";
- }
+ /**
+ * Calculate the 2 byte dostime used in the zip entries.
+ *
+ * @param int $timestamp
+ * @return 2-byte encoded DOS Date
+ */
+ private function getDosTime($timestamp = 0) {
+ $timestamp = (int)$timestamp;
+ $date = ($timestamp == 0 ? getdate() : getDate($timestamp));
+ if ($date["year"] >= 1980) {
+ return pack("V", (($date["mday"] + ($date["mon"] << 5) + (($date["year"]-1980) << 9)) << 16) |
+ (($date["seconds"] >> 1) + ($date["minutes"] << 5) + ($date["hours"] << 11)));
+ }
+ return "\x00\x00\x00\x00";
+ }
- /**
- * Build the Zip file structures
- *
- * @param unknown_type $filePath
- * @param unknown_type $fileComment
- * @param unknown_type $gpFlags
- * @param unknown_type $gzType
- * @param unknown_type $timestamp
- * @param unknown_type $fileCRC32
- * @param unknown_type $gzLength
- * @param unknown_type $dataLength
- * @param integer $extFileAttr 16 for directories, 32 for files.
- */
- private function buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, $extFileAttr) {
- $filePath = str_replace("\\", "/", $filePath);
- $fileCommentLength = (is_null($fileComment) ? 0 : strlen($fileComment));
- $dosTime = $this->getDosTime($timestamp);
-
- $zipEntry = $this->localFileHeader;
- $zipEntry .= "\x14\x00"; // Version needed to extract
- $zipEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
- $zipEntry .= pack("VV", $gzLength, $dataLength);
- $zipEntry .= pack("v", strlen($filePath) ); // File name length
- $zipEntry .= "\x00\x00"; // Extra field length
- $zipEntry .= $filePath; // FileName . Extra field
+ /**
+ * Build the Zip file structures
+ *
+ * @param unknown_type $filePath
+ * @param unknown_type $fileComment
+ * @param unknown_type $gpFlags
+ * @param unknown_type $gzType
+ * @param unknown_type $timestamp
+ * @param unknown_type $fileCRC32
+ * @param unknown_type $gzLength
+ * @param unknown_type $dataLength
+ * @param integer $extFileAttr 16 for directories, 32 for files.
+ */
+ private function buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, $extFileAttr) {
+ $filePath = str_replace("\\", "/", $filePath);
+ $fileCommentLength = (is_null($fileComment) ? 0 : strlen($fileComment));
+ $dosTime = $this->getDosTime($timestamp);
+
+ $zipEntry = $this->localFileHeader;
+ $zipEntry .= "\x14\x00"; // Version needed to extract
+ $zipEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
+ $zipEntry .= pack("VV", $gzLength, $dataLength);
+ $zipEntry .= pack("v", strlen($filePath) ); // File name length
+ $zipEntry .= "\x00\x00"; // Extra field length
+ $zipEntry .= $filePath; // FileName . Extra field
- if (is_null($this->zipFile)) {
- $this->zipData .= $zipEntry;
- } else {
- fwrite($this->zipFile, $zipEntry);
- }
-
- $cdEntry = $this->centralFileHeader;
- $cdEntry .= "\x00\x00"; // Made By Version
- $cdEntry .= "\x14\x00"; // Version Needed to extract
- $cdEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
- $cdEntry .= pack("VV", $gzLength, $dataLength);
- $cdEntry .= pack("v", strlen($filePath)); // Filename length
- $cdEntry .= "\x00\x00"; // Extra field length
- $cdEntry .= pack("v", $fileCommentLength); // File comment length
- $cdEntry .= "\x00\x00"; // Disk number start
- $cdEntry .= "\x00\x00"; // internal file attributes
- $cdEntry .= pack("V", $extFileAttr ); // External file attributes
- $cdEntry .= pack("V", $this->offset ); // Relative offset of local header
- $cdEntry .= $filePath; // FileName . Extra field
- if (!is_null($fileComment)) {
- $cdEntry .= $fileComment; // Comment
- }
+ if (is_null($this->zipFile)) {
+ $this->zipData .= $zipEntry;
+ } else {
+ fwrite($this->zipFile, $zipEntry);
+ }
+
+ $cdEntry = $this->centralFileHeader;
+ $cdEntry .= "\x00\x00"; // Made By Version
+ $cdEntry .= "\x14\x00"; // Version Needed to extract
+ $cdEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
+ $cdEntry .= pack("VV", $gzLength, $dataLength);
+ $cdEntry .= pack("v", strlen($filePath)); // Filename length
+ $cdEntry .= "\x00\x00"; // Extra field length
+ $cdEntry .= pack("v", $fileCommentLength); // File comment length
+ $cdEntry .= "\x00\x00"; // Disk number start
+ $cdEntry .= "\x00\x00"; // internal file attributes
+ $cdEntry .= pack("V", $extFileAttr ); // External file attributes
+ $cdEntry .= pack("V", $this->offset ); // Relative offset of local header
+ $cdEntry .= $filePath; // FileName . Extra field
+ if (!is_null($fileComment)) {
+ $cdEntry .= $fileComment; // Comment
+ }
- $this->cdRec[] = $cdEntry;
- $this->offset += strlen($zipEntry) + $gzLength;
- }
+ $this->cdRec[] = $cdEntry;
+ $this->offset += strlen($zipEntry) + $gzLength;
+ }
}
-?>
\ No newline at end of file
diff --git a/index4.php b/index4.php
index bffe7b3..13ff276 100644
--- a/index4.php
+++ b/index4.php
@@ -1,88 +1,88 @@
-' . "\n"; // für Ungarn ///////////////////////////////////
- $somecontent .= '' . "\n";
-
- $lineCount = count($zeile);
- for ($x = 0; $x < $lineCount; $x++) {
-
- $inhalt[$y][$x] = $zeile[$x];
- $inhalt[$y][$x] = preg_replace('/[\x00-\x1F\x7F]/u', '', $inhalt[$y][$x]);
- $inhalt[$y][$x] = str_replace('>', ']', str_replace('<', '[', $inhalt[$y][$x]));
- if (empty($inhalt[$y][$x])) continue;
- //if ($y!=1) $inhalt[$y][$x] = '';
- $somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . (($inhalt[$y][$x])) . '' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //für ungarn sonst weg }
-
- }
- $somecontent .= '';
- if (fwrite($handle, $somecontent) === FALSE) {
- echo "Cannot write to file ($filename)";exit;
- }
- fclose($handle);
-
-}
-fclose($fp);
-
-echo printHTMLHead();
-
-echo '
-';
-
-echo '
-
-