Tach!
$arItems[]='/var/log/syslog' #Eine Datei, es können mehr sein
$arItems[]='/var/log/apache/' #Ein Verzeichnis, es können mehr sein
Semikolons, es könnten zwei mehr sein ;)
unset ($arItems);
foreach ($arItems as $item) {
Wirklich unset() oder etwa reset()? Ersteres wäre kontraproduktiv, letzeres bei foreach hyperliquid.
$itemsShellEscaped .= escapeshellarg($item).' '; # escapeshellarg() nicht entfernen!
# Nur bei fixen Dateien, dann manuell escapen...
Lieber escapeshellarg() lassen, das stört auch dabei nicht. Anderenfalls müsste man zum Beispiel Dateinamen mit Leerzeichen drin immer mit Backslash-Escaping statt im lesbaren Rohformat notieren und dabei auch noch das Escaping von PHP-String-Literals beachten.
$arItems[] = '/home/reports/Report\ vom\ heutigen\ Tag.csv';
Also zumindest bei "double quoted" String, braucht es zwei Backslashes, bei 'single quoted' reicht auch eins.
echo file_get_contents($tempfile);
readfile(). Liest und sendet häppchenweise und nicht den Brocken komplett in den Speicher.
Ausgaben, Fehler:</br> . htmlentities(implode('</br>', $arReturns)) . '
htmlspecialchars(). Oder hast du einen Grund für htmlentities(), z.B. wegen ungelöster Zeichenkodierungsprobleme? Und Implodieren mit \n, und nl2br() nach dem htmlspecialchars() anwenden.
dedlfix.