1 <?php 2 3 declare(strict_types=1); 4 5 namespace OpenSpout\Common\Helper\Escaper; 6 7 /** 8 * @internal 9 */ 10 final class ODS implements EscaperInterface 11 { 12 /** 13 * Escapes the given string to make it compatible with XLSX. 14 * 15 * @param string $string The string to escape 16 * 17 * @return string The escaped string 18 */ 19 public function escape(string $string): string 20 { 21 /* 22 * 'ENT_DISALLOWED' ensures that invalid characters in the given document type are replaced. 23 * Otherwise control characters like a vertical tab "\v" will make the XML document unreadable by the XML processor. 24 * 25 * @see https://github.com/box/spout/issues/329 26 */ 27 return htmlspecialchars($string, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8'); 28 } 29 30 /** 31 * Unescapes the given string to make it compatible with XLSX. 32 * 33 * @param string $string The string to unescape 34 * 35 * @return string The unescaped string 36 */ 37 public function unescape(string $string): string 38 { 39 // ============== 40 // = WARNING = 41 // ============== 42 // It is assumed that the given string has already had its XML entities decoded. 43 // This is true if the string is coming from a DOMNode (as DOMNode already decode XML entities on creation). 44 // Therefore there is no need to call "htmlspecialchars_decode()". 45 return $string; 46 } 47 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body