Mit PHP Leerzeilen in einer Datei entfernen

Sicherlich kann folgendes Skript der ein oder andere auch gebrauchen (insbesondere wenn man das Shopsystem Veyton in der Version 4.0.12 nutzt). Das Skript löscht aus einer Datei einfach die Leerzeilen heraus. Leider beherrscht diese triviale Funktion der Export-Manager des Shopsystems xt:commerce Veyton leider nicht. Wenn das Produkt nicht mehr auf Lager ist, dann wird einfach eine Leerzeile in das Produktfeed eingefügt. Für viele Portale (u.a. für den Google Merchant Center) ist das natürlich nicht ganz so optimal, da hier Fehlermeldungen vorprogrammiert sind.

Ich habe nun kurzerhand die vom Shop automatisiert erstellte Datei nochmals per Cronjob auf Leerzeilen überprüft und diese entfernt, so dass die Dienste welche den Feed ohne Leerzeilen benötigen dann auf diesen zugreifen können.

<?php
$userdatei = fopen("datei-mit-leerzeilen.csv","r");
$outputdateiname = "datei-ohne-leerzeilen.csv";

if (file_exists($outputdateiname)) {
    $outputdatei = fopen($outputdateiname,"w");
} else {
    $outputdatei = fopen($outputdateiname,"a");
}

while(!feof($userdatei))
   {
   $zeile = fgets($userdatei,1024);
	   if ($zeile != "\n"){
	   	fwrite($outputdatei, $zeile);
	   }
   }
fclose($userdatei);
fclose($outputdatei);
?>

Eventuell hilft es ja den ein oder anderem. Verbesserungsvorschläge sind natürlich willkommen. Fehlerhandling ist im Übrigen nicht so mein Ding wie man sieht 😉

Error Reporting in PHP Files aktivieren

errorDa ich bei meinem letzten Projekt beim Debuggen wieder einmal der Fehlersuche hinterhergerannt bin möchte ich kurz eine mögliche Lösung posten (mehr für mich zur Erinnerung, jedoch bin ich der Meinung, dass es eventuell den ein oder anderen auch interessieren könnte.)

Einfach Zeilen 2 – 4 mit ins PHP-File schreiben und schon werden hübsche Fehlermeldungen ausgegeben.

<?php
	error_reporting(-1);
	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);

	echo testfunktion();

	function testfunktion($variable){
		$variable += 20;
		return $variable;
	}
?>

Im übrigen heißt dieses nette Syntax-Highlighting Plugin “SyntaxHighlighter Evolved” und kann über das WordPress-Backend installiert werden. Ich nutze im übrigen die Version 2.x, da ich dann diese tolle Toolbar zur Verfügung habe über die man den Code in die Zwischenablage kopieren kann.

Im Übrigen danke ich Simon für den tollen Tipp!