]*?href="[^"]*?\/tags\/[^"]*?".*?>#.*?<\/a>/iu', '', $processedContent);
// Entfernt verbleibende HTML-Tags (z.B. , etc.)
$processedContent = strip_tags($processedContent);
$processedContent = html_entity_decode($processedContent, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$processedContent = trim(preg_replace('/\s+/', ' ', $processedContent)); // Mehrere Leerzeichen durch eines ersetzen
$imageMarkdown = '';
foreach ($imageFilenames as $imageData) {
$imageMarkdown .= "\n[image " . $imageData['filename'];
if (!empty($imageData['alt'])) {
$imageMarkdown .= ' alt="' . htmlspecialchars($imageData['alt'], ENT_QUOTES | ENT_HTML5, 'UTF-8') . '"';
}
$imageMarkdown .= "]\n";
}
$featuredImageFrontMatter = '';
if (!empty($imageFilenames)) {
$featuredImageFrontMatter = "Image: " . $imageFilenames[0]['filename'] . "\n";
}
// Ersetze @ mit @ im Autorennamen für die HTML-Ausgabe
$htmlSafeAuthorName = str_replace('@', '@', $originalAuthorName);
$sourceLinkHtml = '';
if (!empty($itemUrl)) {
$sourceLinkHtml = "
Originalbeitrag: $itemUrl";
}
return << "$processedContent"
>
> — $htmlSafeAuthorName
$sourceLinkHtml
MARKDOWN;
}
private function getYellowConfig() {
if ($this->yellow) {
return $this->yellow->system;
}
return null;
}
private function sendResponse($message, $statusCode = 200) {
$htmlContent = "Umleitung..." . htmlspecialchars($message) . "
Sie werden in 3 Sekunden weitergeleitet. Falls nicht, klicken Sie hier.
";
if (!headers_sent()) {
header("HTTP/1.1 " . $statusCode . " " . $this->getHttpStatusMessage($statusCode));
header("Content-Type: text/html");
}
echo $htmlContent;
exit;
}
private function getHttpStatusMessage($statusCode) {
$httpStatus = array(
100 => 'Continue', 101 => 'Switching Protocols',
200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content',
300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect',
400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Payload Too Large', 414 => 'URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Range Not Satisfiable', 417 => 'Expectation Failed', 426 => 'Upgrade Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', 451 => 'Unavailable For Legal Reasons',
500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported'
);
return ($httpStatus[$statusCode]) ? $httpStatus[$statusCode] : 'Unknown Status';
}
}