#!/usr/bin/php 0) { fwrite(STDERR, "pdftk not installed" . PHP_EOL); exit(5); } // set some variables $sock_file = "/var/mlohn/pdftkd.sock"; // don't timeout! set_time_limit(0); // create socket if (!$socket = socket_create(AF_UNIX, SOCK_STREAM, 0)) { fwrite(STDERR, "Could not create socket" . PHP_EOL); exit(10); } // check if socket free if (file_exists($sock_file)) unlink($sock_file); // bind socket to port if (!socket_bind($socket, $sock_file)) { fwrite(STDERR, "Could not bind to socket" . PHP_EOL); exit(20); } chmod($sock_file, 0777); syslog(LOG_DAEMON | LOG_INFO, "pdftkd started."); // start listening for connections while (socket_listen($socket, 3)) { // accept incoming connections // spawn another socket to handle communication $spawn = socket_accept($socket); // read client input $input = socket_read($spawn, 1024); // eval up input string $input = trim($input); syslog(LOG_DAEMON | LOG_DEBUG, "data received: $input"); $request_data = explode(";", $input); // expected data: "LETTER;PDF_PATH;TMP_DIR" $letter = $request_data[0]; $pdf_path = $request_data[1]; $tmp = $request_data[2]; $rc = 0; // prüfe, ob Briefpapier vorhanden if (!file_exists($letter)) { syslog(LOG_DAEMON | LOG_ERR, "Letter $letter not existing"); $rc = 1; } if (!$rc) { exec("pdftk $pdf_path background $letter output $tmp/tmp.pdf", $out, $ret); if ($ret > 0) { syslog(LOG_DAEMON | LOG_ERR, "PDF overlay failed:\n". implode("\n", $out)); $rc = 2; } } if (!$rc) { if (!rename("$tmp/tmp.pdf", "$pdf_path")) { syslog(LOG_DAEMON | LOG_ERR, "PDF rename failed: ". implode("\n", $out)); $rc = 3; } } syslog(LOG_DAEMON | LOG_DEBUG, "data processed: $rc"); if (! socket_write($spawn, $rc, strlen ($rc))) syslog(LOG_DAEMON | LOG_ERR, "Could not write rc"); // close sockets socket_close($spawn); } //socket_close($socket); /* * Quelle: https://www.codeproject.com/tips/418814/socket-programming-in-php */ /* // set some variables $host = "127.0.0.1"; $port = 25003; // don't timeout! set_time_limit(0); // create socket $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); // bind socket to port if (!socket_bind($socket, $host, $port)) { socket_close($socket); $result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); } // start listening for connections //$result = socket_listen($socket, 3) or die("Could not set up socket listener\n"); while ($result = socket_listen($socket, 3)) { // accept incoming connections // spawn another socket to handle communication $spawn = socket_accept($socket) or die("Could not accept incoming connection\n"); // read client input $input = socket_read($spawn, 1024) or die("Could not read input\n"); // clean up input string $input = trim($input); echo "Client Message : ".$input."\n"; // reverse client input and send back $output = strrev($input) . "\n"; socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n"); // close sockets socket_close($spawn); } socket_close($socket); */