Globtrotter
Gerne, zwar wenig kommentiert, aber auch nur klein:
Getestet unter Win10 und Ubuntu18, mit php7.2 CLI.
PHP:
#!/usr/bin/php
<?php
// InDesign Datei einlesen
echo 'Pfad der InDesign-Datei: ';
$hDatei = fopen("php://stdin","r");
$sDatei = trim(str_replace(['\\','"'], ['/',''], fgets($hDatei)));
if($sDatei == ''){
die("\n\n~~~>\n\n");
}
fclose($hDatei);
// Pfad, der die Bilder beinhaltet, einlesen
echo "\n".'Pfad der Verknüfungen: ';
$hPfad = fopen("php://stdin","r");
$sPfad = trim(str_replace(['\\','"'], ['/',''], fgets($hPfad)));
if($sPfad == ''){
die("\n\n~~~>\n\n");
} elseif(!is_dir($sPfad)) {
die("\n\nKein gültiger Pfad: $sPfad\n\n");
}
fclose($hPfad);
// Liste aller Bilder in Ordner erstellen
if ($hPfad = opendir($sPfad)){
$sDateien = '';
while(($file = readdir($hPfad)) !== false)
{
$sDateien .= "\n".$file;
}
closedir($hPfad);
}
// Leere Arrays entfernen
$aDateien = explode("\n", $sDateien);
unset($aDateien[2], $aDateien[1], $aDateien[0]);
// Im XML-Teil der Datei nach den Bilder-Namen suchen
$sInhalt = file_get_contents($sDatei);
foreach ($aDateien as $iID => $sWert) {
$bWert = strpos($sInhalt, $sWert);
if ($bWert == false){
$aInDesign['Fehlend'][] = $aDateien[$iID];
} else {
$aInDesign['Vorhanden'][] = $aDateien[$iID];
}
}
// Ausgabe
echo "\n";
print_r($aInDesign);
?>
Zuletzt bearbeitet: