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:: |