class FeedsExXmlEncoder in Feeds extensible parsers 7
Converts the encoding of an XML document to UTF-8.
Hierarchy
- class \FeedsExTextEncoder implements FeedsExEncoderInterface- class \FeedsExXmlEncoder
 
Expanded class hierarchy of FeedsExXmlEncoder
File
- src/Xml/ Utility.php, line 141 
- Contains FeedsExXmlUtility.
View source
class FeedsExXmlEncoder extends FeedsExTextEncoder {
  /**
   * The regex used to find the encoding.
   *
   * @var string
   */
  protected $findRegex = '/^<\\?xml[^>]+encoding\\s*=\\s*("|\')([\\w-]+)(\\1)/';
  /**
   * The regex used to replace the encoding.
   *
   * @var string
   */
  protected $replaceRegex = '/^(<\\?xml[^>]+encoding\\s*=\\s*("|\'))([\\w-]+)(\\2)/';
  /**
   * The replacement pattern.
   *
   * @var string
   */
  protected $replacePattern = '$1UTF-8$4';
  /**
   * {@inheritdoc}
   */
  public function convertEncoding($data) {
    // Check for an encoding declaration in the XML prolog.
    $matches = FALSE;
    $encoding = 'ascii';
    if (preg_match($this->findRegex, $data, $matches)) {
      $encoding = $matches[2];
    }
    elseif ($detected = $this
      ->detectEncoding($data)) {
      $encoding = $detected;
    }
    // Unsupported encodings are converted here into UTF-8.
    if (in_array(strtolower($encoding), self::$utf8Compatible)) {
      return $data;
    }
    $data = $this
      ->doConvert($data, $encoding);
    if ($matches) {
      $data = preg_replace($this->replaceRegex, $this->replacePattern, $data);
    }
    return $data;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| FeedsExTextEncoder:: | protected | property | The list of encodings to search for. | |
| FeedsExTextEncoder:: | protected | property | Whether the current system handles mb_* functions. | |
| FeedsExTextEncoder:: | protected static | property | The set of encodings compatible with UTF-8. | |
| FeedsExTextEncoder:: | public | function | Returns the configuration form to select encodings. Overrides FeedsExEncoderInterface:: | |
| FeedsExTextEncoder:: | public | function | Validates the encoding configuration form. Overrides FeedsExEncoderInterface:: | |
| FeedsExTextEncoder:: | protected | function | Detects the encoding of a string. | |
| FeedsExTextEncoder:: | protected | function | Performs the actual encoding conversion. | |
| FeedsExTextEncoder:: | public | function | Constructs a FeedsExEncoderInterface object. Overrides FeedsExEncoderInterface:: | |
| FeedsExXmlEncoder:: | protected | property | The regex used to find the encoding. | 1 | 
| FeedsExXmlEncoder:: | protected | property | The replacement pattern. | 1 | 
| FeedsExXmlEncoder:: | protected | property | The regex used to replace the encoding. | 1 | 
| FeedsExXmlEncoder:: | public | function | Converts a string to UTF-8. Overrides FeedsExTextEncoder:: | 
