stripControlChars($string); return htmlspecialchars($string, ENT_XML1 | ENT_QUOTES, $charset, true); } /** * CDATA-Abschnitt erzeugen * * @param string $string * * @return string */ public function createXmlCdataSection($string) { return sprintf('', (string)$string); } /** * Filtert alle Steuerzeichen aus; außer Zeilenumbrüche, Tabs und Leerzeichen * * @see https://www.ascii-code.com/ * * @param string $string * * @return string */ private function stripControlChars($string) { // Erlaubte Steuerzeichen // \x09 = Horintal tab (HT) = \t // \x0a = Line feed (LF) = \n // \x0d = Carriage return (CR) = \r $string = (string)preg_replace('/[\x00-\x08]/', '', (string)$string); // Steuerzeichen bis HT und LF $string = (string)preg_replace('/[\x0b\x0c]/', '', (string)$string); // Steuerzeichen zwischen LF und CR $string = (string)preg_replace('/[\x0e-\x1f]/', '', (string)$string); // Steuerzeichen ab CR $string = (string)preg_replace('/[\x7f]/', '', (string)$string); // DELETE return $string; } }