| 1 | 
           efrain | 
           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 | 
           }
  |