PHP Aufgabenautomatisierung: 10 Codebeispiele für faule Programmierer

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Warum Routine mit PHP automatisieren? Oder: Wie man den Computer für sich arbeiten lässt

\n\n

Stell dir vor: Jeden Morgen meldest du dich auf dem Server an, startest ein Datenbank-Backup, prüfst die Fehlerlogs, generierst den gestrigen Bericht und schickst ihn an deinen Chef. Und dann nochmal, und nochmal. Langweilig? Allerdings. Und vor allem: Es ist dumm, die Zeit eines Programmierers mit Dingen zu verschwenden, die eine Maschine erledigen kann.

\n\n

PHP ist nicht nur für Websites da. Diese Sprache eignet sich hervorragend für die Automatisierung von Aufgaben mit PHP: vom einfachen Umbenennen von Dateien bis zum komplexen Web Scraping. In diesem Artikel zeige ich dir 10 praxiserprobte Beispiele, die dir Stunden Arbeit ersparen. Alle Skripte sind funktionsfähig und getestet – nimm sie und nutze sie.

\n\n

Übrigens: Wenn du nach fertigen Lösungen für die Automatisierung mit PHP suchst, bist du hier genau richtig. Los geht's!

\n\n

1. Automatischer E-Mail-Versand mit Anhang (PDF-Bericht)

\n\n

Die häufigste Anfrage von Unternehmen: „Mach, dass die Berichte von selbst kommen.“ Unten siehst du ein einfaches Skript, das eine E-Mail mit einer PDF-Datei versendet.

\n\n
<?php\nfunction sendReportWithAttachment($to, $subject, $body, $filePath) {\n    $boundary = md5(time());\n    \n    $headers = "MIME-Version: 1.0\\r\\n";\n    $headers .= "From: report@mysite.com\\r\\n";\n    $headers .= "Content-Type: multipart/mixed; boundary=\\"{$boundary}\\"\\r\\n";\n    \n    $message = "--{$boundary}\\r\\n";\n    $message .= "Content-Type: text/plain; charset=utf-8\\r\\n\\r\\n";\n    $message .= $body . "\\r\\n\\r\\n";\n    \n    if (file_exists($filePath)) {\n        $content = file_get_contents($filePath);\n        $content = chunk_split(base64_encode($content));\n        $message .= "--{$boundary}\\r\\n";\n        $message .= "Content-Type: application/pdf; name=\\"" . basename($filePath) . "\\"\\r\\n";\n        $message .= "Content-Disposition: attachment; filename=\\"" . basename($filePath) . "\\"\\r\\n";\n        $message .= "Content-Transfer-Encoding: base64\\r\\n\\r\\n";\n        $message .= $content . "\\r\\n";\n    }\n    \n    $message .= "--{$boundary}--";\n    \n    return mail($to, $subject, $message, $headers);\n}\n\n// Verwendung:\nsendReportWithAttachment(\n    'chef@firma.de',\n    'Täglicher Bericht vom ' . date('d.m.Y'),\n    'Im Anhang befindet sich der PDF-Bericht. Details in der Datei.',\n    '/var/reports/daily_report.pdf'\n);\n?>
\n\n

So automatisierst du es: Lege dieses Skript als Cron-Job an, der einmal täglich ausgeführt wird – und die Berichte versenden sich von selbst.

\n\n

2. Web Scraping und Speichern der Daten als CSV

\n\n

Angenommen, du musst die Preise der Konkurrenz oder eine Liste von Stellenanzeigen sammeln. Web Scraping mit PHP ist einfach. Wir verwenden cURL und DOMDocument.

\n\n
<?php\nfunction parseSiteToCSV($url, $cssSelector, $outputFile) {\n    $ch = curl_init();\n    curl_setopt($ch, CURLOPT_URL, $url);\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);\n    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');\n    \n    $html = curl_exec($ch);\n    curl_close($ch);\n    \n    if (!$html) {\n        return false;\n    }\n    \n    $dom = new DOMDocument();\n    @$dom->loadHTML($html);\n    $xpath = new DOMXPath($dom);\n    \n    $items = $xpath->query($cssSelector);\n    \n    $file = fopen($outputFile, 'w');\n    fputcsv($file, ['Text', 'Link']);\n    \n    foreach ($items as $item) {\n        $text = trim($item->textContent);\n        $link = $item->getAttribute('href') ?: '—';\n        fputcsv($file, [$text, $link]);\n    }\n    \n    fclose($file);\n    return true;\n}\n\n// Beispiel: News-Überschriften von einer Website scrapen\nparseSiteToCSV(\n    'https://news.ycombinator.com/',\n    '//tr[@class="athing"]/td[@class="title"]/a',\n    'hacker_news_titles.csv'\n);\n?>
\n\n

Dieses Beispiel für die Automatisierung von Aufgaben mit PHP kannst du stündlich laufen lassen – und erhältst aktuelle Daten ohne einen einzigen Klick.

\n\n

3. Automa

Blogs

Buchempfehlungen