Hallo zusammen,
beim Import mit yag von Bilder aus einem auf dem Server liegem Verzeichnis, kommen für jedes importierte Bild drei PHP-Fehler - die Bidler weden dennoch importiert...
Das passiert übrigens auf drei unabhängigen TYPO3 Systemen bei unterschiedlichen Hostern...
Die Fehler sind:
PHP Warning
PHP Warning: simplexml_load_string(): Entity: line 1: parser errof : Start tag expected, '<' not found in /var/www/html/intranet/typo3conf/ext/yag/Classes/Domain/import/MetaData/XmpParser.php line 50
PHP Warning
PHP Warning: simplexml_load_string(): ???? in /var/www/html/intranet/typo3conf/ext/yag/Classes/Domain/import/MetaData/XmpParser.php line 50
PHP Warning
PHP Warning: simplexml_load_string(): ^ in /var/www/html/intranet/typo3conf/ext/yag/Classes/Domain/import/MetaData/XmpParser.php line 50
Die Fragezeichen haben noch so nen Kasten drum - also wohl falsche Zeichenformatierung
Kann mir jemand sagen, was ich machen muss, damit die Fehler nicht mehr kommen? Ist doch etwas schöner ohne ;-)
Danke und liebe Grüße,
Leo
Hallo Leo.
Die Warnings erklären sich finde ich recht einfach, mit einem Blick in die entsprechende Zeile:
/**
* Parses given file for xmp data
*
* TODO not working yet!
*
* @param string $filename
* @return array XMP data array
*/
public static function parseXmpData($filename) {
$content = file_get_contents($filename);
$xmp_data_start = strpos($content, '<x:xmpmeta');
$xmp_data_end = strpos($content, '</x:xmpmeta>');
$xmp_length = $xmp_data_end - $xmp_data_start;
$xmp_data = substr($content, $xmp_data_start, $xmp_length + 12);
$xmp_data = '<?xml version="1.0" encoding="UTF-8"?>' . $xmp_data;
$xmp = simplexml_load_string($xmp_data);
#$xmpArray = self::objectsIntoArray($xmp);
$xmpArray = self::simpleXMLToArray($xmp);
#return $xmpArray;
return $xmp_data;
}
Zum einen ist der TODO-Kommentar interessant ;-)
Zum anderen erklärt sich die Warnung. Falls keine XMP-Daten im Bild gefunden werden, beinhaltet $xmp_data keinerlei Tags. Folglich findet der simplexml_load_string() nichts zu parsen.
Desweiteren wird mit dem gepasten auch nichts mehr angestellt, d.h. die Warning wird bei einer (derzeit) überflüssigen Aktion geworfen. Weder $xmp noch $xmpArray verlassen die Methode.
Die Lösung wäre wohl, dass die Funktion mal fertig gebaut wird - und Mitarbeit ist sicherlich willkommen ;-)
Viele Grüße
Julian
Hallo Leo, hallo Julian,
Da habt ihr tatsächlich ein schönes Stück miefenden Code aus den experimentellen YAG Anfangstagen ausgegraben 🙂
Ganz ohne Funktion ist der Code nicht, er gibt den XMP String zurück welcher dann via Regex weiterverarbeitet wird. Schön ist anders, und Wie Julian schon sagte, freu ich mich sehr über jede Hilfe.
Ich hab das mal so bereinigt, dass der code keine Warnings mehr wirft...
Viele Grüße
Daniel