Zum Inhalt springen

PHP-Fehler beim Bilderimport im yag

Erstellt am 8. Januar 2013 · 2 Antworten · letzte Antwort am 9. Januar 2013

Tags: YAG Gallery, PHP, Frage

leof ·

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

Julian.​Hofmann ·

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

brucelie ·

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