WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Платформа для конвертации и монетизации трафика
функция не описана

SimplePie_Misc::xml_encoding() public WP 1.0

Detect XML encoding, as per XML 1.0 Appendix F.1

{} Это метод класса: SimplePie_Misc{}

Хуков нет.

Возвращает

Массив. Possible encodings

Использование

$result = SimplePie_Misc::xml_encoding( $data, $registry );
$data(строка) (обязательный)
XML data
$registry(SimplePie_Registry) (обязательный)
Class registry

Код SimplePie_Misc::xml_encoding() WP 5.5.3

<?php
public static function xml_encoding($data, $registry)
{
	// UTF-32 Big Endian BOM
	if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
	{
		$encoding[] = 'UTF-32BE';
	}
	// UTF-32 Little Endian BOM
	elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
	{
		$encoding[] = 'UTF-32LE';
	}
	// UTF-16 Big Endian BOM
	elseif (substr($data, 0, 2) === "\xFE\xFF")
	{
		$encoding[] = 'UTF-16BE';
	}
	// UTF-16 Little Endian BOM
	elseif (substr($data, 0, 2) === "\xFF\xFE")
	{
		$encoding[] = 'UTF-16LE';
	}
	// UTF-8 BOM
	elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
	{
		$encoding[] = 'UTF-8';
	}
	// UTF-32 Big Endian Without BOM
	elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
	{
		if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
		{
			$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8')));
			if ($parser->parse())
			{
				$encoding[] = $parser->encoding;
			}
		}
		$encoding[] = 'UTF-32BE';
	}
	// UTF-32 Little Endian Without BOM
	elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
	{
		if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
		{
			$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8')));
			if ($parser->parse())
			{
				$encoding[] = $parser->encoding;
			}
		}
		$encoding[] = 'UTF-32LE';
	}
	// UTF-16 Big Endian Without BOM
	elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
	{
		if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
		{
			$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8')));
			if ($parser->parse())
			{
				$encoding[] = $parser->encoding;
			}
		}
		$encoding[] = 'UTF-16BE';
	}
	// UTF-16 Little Endian Without BOM
	elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
	{
		if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
		{
			$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8')));
			if ($parser->parse())
			{
				$encoding[] = $parser->encoding;
			}
		}
		$encoding[] = 'UTF-16LE';
	}
	// US-ASCII (or superset)
	elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
	{
		if ($pos = strpos($data, "\x3F\x3E"))
		{
			$parser = $registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
			if ($parser->parse())
			{
				$encoding[] = $parser->encoding;
			}
		}
		$encoding[] = 'UTF-8';
	}
	// Fallback to UTF-8
	else
	{
		$encoding[] = 'UTF-8';
	}
	return $encoding;
}