]*)' . // attributes ($4)
'>' .
'<\/(\1|\2|\3)>' . // 1, 2, or 3 again ($5)
'~s'
;
$preg2 =
'<' .
'${1}${2}${3}' . // tag (only one should have been populated)
'${4}' . // attributes
' />'
;
return (preg_replace($preg1, $preg2, $xml)?:$xml);
break;
case XML_UTIL_COLLAPSE_XHTML_ONLY:
return (
preg_replace(
'/<(area|base(?:font)?|br|col|frame|hr|img|input|isindex|link|meta|'
. 'param)([^>]*)><\/\\1>/s',
'<\\1\\2 />',
$xml
) ?: $xml
);
break;
case XML_UTIL_COLLAPSE_NONE:
// fall thru
default:
return $xml;
}
}
/**
* Create a tag
*
* This method will call XML_Util::createTagFromArray(), which
* is more flexible.
*
*
* require_once 'XML/Util.php';
*
* // create an XML tag:
* $tag = XML_Util::createTag('myNs:myTag',
* array('foo' => 'bar'),
* 'This is inside the tag',
* 'http://www.w3c.org/myNs#');
*
*
* @param string $qname qualified tagname (including namespace)
* @param array $attributes array containg attributes
* @param mixed $content the content
* @param string $namespaceUri URI of the namespace
* @param int $replaceEntities whether to replace XML special chars in
* content, embedd it in a CData section
* or none of both
* @param bool $multiline whether to create a multiline tag where
* each attribute gets written to a single line
* @param string $indent string used to indent attributes
* (_auto indents attributes so they start
* at the same column)
* @param string $linebreak string used for linebreaks
* @param bool $sortAttributes Whether to sort the attributes or not
* @param int $collapseTagMode How to handle a content-less, and thus collapseable, tag
*
* @return string XML tag
* @see createTagFromArray()
* @uses createTagFromArray() to create the tag
*/
public static function createTag(
$qname, $attributes = array(), $content = null,
$namespaceUri = null, $replaceEntities = XML_UTIL_REPLACE_ENTITIES,
$multiline = false, $indent = '_auto', $linebreak = "\n",
$sortAttributes = true, $collapseTagMode = XML_UTIL_COLLAPSE_ALL
) {
$tag = array(
'qname' => $qname,
'attributes' => $attributes
);
// add tag content
if ($content !== null) {
$tag['content'] = $content;
}
// add namespace Uri
if ($namespaceUri !== null) {
$tag['namespaceUri'] = $namespaceUri;
}
return XML_Util::createTagFromArray(
$tag, $replaceEntities, $multiline,
$indent, $linebreak, $sortAttributes,
$collapseTagMode
);
}
/**
* Create a tag from an array.
* This method awaits an array in the following format
*
* array(
* // qualified name of the tag
* 'qname' => $qname
*
* // namespace prefix (optional, if qname is specified or no namespace)
* 'namespace' => $namespace
*
* // local part of the tagname (optional, if qname is specified)
* 'localpart' => $localpart,
*
* // array containing all attributes (optional)
* 'attributes' => array(),
*
* // tag content (optional)
* 'content' => $content,
*
* // namespaceUri for the given namespace (optional)
* 'namespaceUri' => $namespaceUri
* )
*
*
*
* require_once 'XML/Util.php';
*
* $tag = array(
* 'qname' => 'foo:bar',
* 'namespaceUri' => 'http://foo.com',
* 'attributes' => array('key' => 'value', 'argh' => 'fruit&vegetable'),
* 'content' => 'I\'m inside the tag',
* );
* // creating a tag with qualified name and namespaceUri
* $string = XML_Util::createTagFromArray($tag);
*
*
* @param array $tag tag definition
* @param int $replaceEntities whether to replace XML special chars in
* content, embedd it in a CData section
* or none of both
* @param bool $multiline whether to create a multiline tag where each
* attribute gets written to a single line
* @param string $indent string used to indent attributes
* (_auto indents attributes so they start
* at the same column)
* @param string $linebreak string used for linebreaks
* @param bool $sortAttributes Whether to sort the attributes or not
* @param int $collapseTagMode How to handle a content-less, and thus collapseable, tag
*
* @return string XML tag
*
* @see createTag()
* @uses attributesToString() to serialize the attributes of the tag
* @uses splitQualifiedName() to get local part and namespace of a qualified name
* @uses createCDataSection()
* @uses collapseEmptyTags()
* @uses raiseError()
*/
public static function createTagFromArray(
$tag, $replaceEntities = XML_UTIL_REPLACE_ENTITIES,
$multiline = false, $indent = '_auto', $linebreak = "\n",
$sortAttributes = true, $collapseTagMode = XML_UTIL_COLLAPSE_ALL
) {
if (isset($tag['content']) && !is_scalar($tag['content'])) {
return XML_Util::raiseError(
'Supplied non-scalar value as tag content',
XML_UTIL_ERROR_NON_SCALAR_CONTENT
);
}
if (!isset($tag['qname']) && !isset($tag['localPart'])) {
return XML_Util::raiseError(
'You must either supply a qualified name '
. '(qname) or local tag name (localPart).',
XML_UTIL_ERROR_NO_TAG_NAME
);
}
// if no attributes hav been set, use empty attributes
if (!isset($tag['attributes']) || !is_array($tag['attributes'])) {
$tag['attributes'] = array();
}
if (isset($tag['namespaces'])) {
foreach ($tag['namespaces'] as $ns => $uri) {
$tag['attributes']['xmlns:' . $ns] = $uri;
}
}
if (!isset($tag['qname'])) {
// qualified name is not given
// check for namespace
if (isset($tag['namespace']) && !empty($tag['namespace'])) {
$tag['qname'] = $tag['namespace'] . ':' . $tag['localPart'];
} else {
$tag['qname'] = $tag['localPart'];
}
} elseif (isset($tag['namespaceUri']) && !isset($tag['namespace'])) {
// namespace URI is set, but no namespace
$parts = XML_Util::splitQualifiedName($tag['qname']);
$tag['localPart'] = $parts['localPart'];
if (isset($parts['namespace'])) {
$tag['namespace'] = $parts['namespace'];
}
}
if (isset($tag['namespaceUri']) && !empty($tag['namespaceUri'])) {
// is a namespace given
if (isset($tag['namespace']) && !empty($tag['namespace'])) {
$tag['attributes']['xmlns:' . $tag['namespace']]
= $tag['namespaceUri'];
} else {
// define this Uri as the default namespace
$tag['attributes']['xmlns'] = $tag['namespaceUri'];
}
}
if (!array_key_exists('content', $tag)) {
$tag['content'] = '';
}
// check for multiline attributes
if ($multiline === true) {
if ($indent === '_auto') {
$indent = str_repeat(' ', (strlen($tag['qname'])+2));
}
}
// create attribute list
$attList = XML_Util::attributesToString(
$tag['attributes'],
$sortAttributes, $multiline, $indent, $linebreak
);
switch ($replaceEntities) {
case XML_UTIL_ENTITIES_NONE:
break;
case XML_UTIL_CDATA_SECTION:
$tag['content'] = XML_Util::createCDataSection($tag['content']);
break;
default:
$tag['content'] = XML_Util::replaceEntities(
$tag['content'], $replaceEntities
);
break;
}
$tag = sprintf(
'<%s%s>%s%s>', $tag['qname'], $attList, $tag['content'],
$tag['qname']
);
return self::collapseEmptyTags($tag, $collapseTagMode);
}
/**
* Create a start element
*
*
* require_once 'XML/Util.php';
*
* // create an XML start element:
* $tag = XML_Util::createStartElement('myNs:myTag',
* array('foo' => 'bar') ,'http://www.w3c.org/myNs#');
*
*
* @param string $qname qualified tagname (including namespace)
* @param array $attributes array containg attributes
* @param string $namespaceUri URI of the namespace
* @param bool $multiline whether to create a multiline tag where each
* attribute gets written to a single line
* @param string $indent string used to indent attributes (_auto indents
* attributes so they start at the same column)
* @param string $linebreak string used for linebreaks
* @param bool $sortAttributes Whether to sort the attributes or not
*
* @return string XML start element
* @see createEndElement(), createTag()
*/
public static function createStartElement(
$qname, $attributes = array(), $namespaceUri = null,
$multiline = false, $indent = '_auto', $linebreak = "\n",
$sortAttributes = true
) {
// if no attributes hav been set, use empty attributes
if (!isset($attributes) || !is_array($attributes)) {
$attributes = array();
}
if ($namespaceUri != null) {
$parts = XML_Util::splitQualifiedName($qname);
}
// check for multiline attributes
if ($multiline === true) {
if ($indent === '_auto') {
$indent = str_repeat(' ', (strlen($qname)+2));
}
}
if ($namespaceUri != null) {
// is a namespace given
if (isset($parts['namespace']) && !empty($parts['namespace'])) {
$attributes['xmlns:' . $parts['namespace']] = $namespaceUri;
} else {
// define this Uri as the default namespace
$attributes['xmlns'] = $namespaceUri;
}
}
// create attribute list
$attList = XML_Util::attributesToString(
$attributes, $sortAttributes,
$multiline, $indent, $linebreak
);
$element = sprintf('<%s%s>', $qname, $attList);
return $element;
}
/**
* Create an end element
*
*
* require_once 'XML/Util.php';
*
* // create an XML start element:
* $tag = XML_Util::createEndElement('myNs:myTag');
*
*
* @param string $qname qualified tagname (including namespace)
*
* @return string XML end element
* @see createStartElement(), createTag()
*/
public static function createEndElement($qname)
{
$element = sprintf('%s>', $qname);
return $element;
}
/**
* Create an XML comment
*
*
* require_once 'XML/Util.php';
*
* // create an XML start element:
* $tag = XML_Util::createComment('I am a comment');
*
*
* @param string $content content of the comment
*
* @return string XML comment
*/
public static function createComment($content)
{
$comment = sprintf('', $content);
return $comment;
}
/**
* Create a CData section
*
*
* require_once 'XML/Util.php';
*
* // create a CData section
* $tag = XML_Util::createCDataSection('I am content.');
*
*
* @param string $data data of the CData section
*
* @return string CData section with content
*/
public static function createCDataSection($data)
{
return sprintf(
'',
preg_replace('/\]\]>/', ']]]]>', strval($data))
);
}
/**
* Split qualified name and return namespace and local part
*
*
* require_once 'XML/Util.php';
*
* // split qualified tag
* $parts = XML_Util::splitQualifiedName('xslt:stylesheet');
*
* the returned array will contain two elements:
*
* array(
* 'namespace' => 'xslt',
* 'localPart' => 'stylesheet'
* );
*
*
* @param string $qname qualified tag name
* @param string $defaultNs default namespace (optional)
*
* @return array array containing namespace and local part
*/
public static function splitQualifiedName($qname, $defaultNs = null)
{
if (strstr($qname, ':')) {
$tmp = explode(':', $qname);
return array(
'namespace' => $tmp[0],
'localPart' => $tmp[1]
);
}
return array(
'namespace' => $defaultNs,
'localPart' => $qname
);
}
/**
* Check, whether string is valid XML name
*
* XML names are used for tagname, attribute names and various
* other, lesser known entities.
* An XML name may only consist of alphanumeric characters,
* dashes, undescores and periods, and has to start with a letter
* or an underscore.
*
*
* require_once 'XML/Util.php';
*
* // verify tag name
* $result = XML_Util::isValidName('invalidTag?');
* if (is_a($result, 'PEAR_Error')) {
* print 'Invalid XML name: ' . $result->getMessage();
* }
*
*
* @param string $string string that should be checked
*
* @return mixed true, if string is a valid XML name, PEAR error otherwise
*
* @todo support for other charsets
* @todo PEAR CS - unable to avoid 85-char limit on second preg_match
*/
public static function isValidName($string)
{
// check for invalid chars
if (!is_string($string) || !strlen($string) || !preg_match('/^[[:alpha:]_]\\z/', $string[0])) {
return XML_Util::raiseError(
'XML names may only start with letter or underscore',
XML_UTIL_ERROR_INVALID_START
);
}
// check for invalid chars
$match = preg_match(
'/^([[:alpha:]_]([[:alnum:]\-\.]*)?:)?'
. '[[:alpha:]_]([[:alnum:]\_\-\.]+)?\\z/',
$string
);
if (!$match) {
return XML_Util::raiseError(
'XML names may only contain alphanumeric '
. 'chars, period, hyphen, colon and underscores',
XML_UTIL_ERROR_INVALID_CHARS
);
}
// XML name is valid
return true;
}
/**
* Replacement for XML_Util::raiseError
*
* Avoids the necessity to always require
* PEAR.php
*
* @param string $msg error message
* @param int $code error code
*
* @return PEAR_Error
* @todo PEAR CS - should this use include_once instead?
*/
public static function raiseError($msg, $code)
{
include_once 'PEAR.php';
return PEAR::raiseError($msg, $code);
}
}
?>
PK qY{R R
Loteca.xmlnu [
- Valor Acumulado para o próximo concurso de final zero (820) : R$ 233.909,18
- DOM1
- INTERNACIONAL/RS1
- GRÊMIO/RS0
- DOM2
- PALMEIRAS/SP1
- CORINTHIANS/SP0
- DOM3
- FLUMINENSE/RJ1
- BOTAFOGO/RJ0
- SÁB4
- CRICIÚMA/SC2
- FORTALEZA/CE0
- SÁB5
- PONTE PRETA/SP0
- SAMPAIO CORRÊA/MA0
- SÁB6
- FIGUEIRENSE/SC1
- CSA/AL2
- SÁB7
- LONDRINA/PR1
- BRASIL/RS0
- SÁB8
- VILA NOVA/GO2
- CORITIBA/PR1
- SÁB9
- SPORT/PE0
- CRUZEIRO/MG0
- SÁB10
- SÃO PAULO/SP1
- BAHIA/BA0
- SÁB11
- FLAMENGO/RJ2
- CHAPECOENSE/SC0
- DOM12
- AMÉRICA/MG0
- CEARÁ/CE0
- DOM13
- PARANÁ/PR0
- SANTOS/SP2
- DOM14
- VITÓRIA/BA1
- VASCO DA GAMA/RJ0
81710/09/2018184945817/09/20180300000- 5132502.6714
- 129808.7613
PK qYlC C Quina.xmlnu [
- 477912/09/201805|09|18|43|78IPATINGASPESPAÇO LOTERIAS CAIXA11753179.525877995.9813/09/20189082435.0410300000
- 00Quina
- 1624182.87Quadra
- 1318277.3Terno
- 2853921.96Duque
PK qY$' ' LotoGol.xmlnu [
- SABADO1
- INTERNACIONAL/RS1
- GRÊMIO/RS0
- DOMINGO2
- PALMEIRAS/SP1
- CORINTHIANS/SP0
- DOMINGO3
- FLUMINENSE/RJ1
- BOTAFOGO/RJ0
- SÁBADO4
- CRICIÚMA/SC2
- FORTALEZA/CE0
- SÁBADO5
- PONTE PRETA/SP0
- SAMPAIO CORRÊA/MA0
101210/09/201818418113/09/2018015000- 119394.51Quina
- 23688.05Quadra
- 59943.46Terno
PK qYZѝs s links.phpnu 6$ PK qY0h h
LotoMania.xmlnu [
- 190011/09/201803|15|21|24|25|38|43|44|50|52|56|57|58|75|82|83|88|91|97|99SERRA NEGRASPCAMINHÃO DA SORTE6293068.5014/09/20188993023.489600000
- 0020
- 1520369.0719
- 1771541.2418
- 1487128.4117
- 880021.6916
- 383684.9715
- 000
PK qYNW=( ( megasena.xml.zipnu [ PK BNym_z megasena.xmlUT ^\\ux 7 9 Rj0}W>bI6LUL&M}lQ~RJݘ% }Ҝ9s4#W
ۛkNWvf> 6h,' 'f׆v$[[[_]5|*w3
}3f?`Vz
# Xb~훈$,K343
bW6Xija%(Ŵ`ULJvgI*5)5 u*l.7>אEg<@ K6?Qgeˇ;t{49qpu\:s}/VmHNvR)%L_}wPK BNym_z megasena.xmlUT ^\ux 7 9 PK R PK qYp MegaSena.xmlnu [
- 216119/06/2019concurso->dezenas;?>SAO PAULOSPCAMINHAO DA SORTE4098976762.112.617,6015/05/20193.000.000,0060.000.000,00R$ 11.000.000,00
- 127758694.68Sena
- 11720198.69Quina
- 6080555.27Quadra
PK qY
_
DuplaSena.xmlnu [
- 14|19|22|28|34|4403|18|32|36|41|44183811/09/2018SÃO PAULOSPESPAÇO LOTERIAS CAIXA22056505461231.3313/09/20185160222.535400000
- 00Sena 1
- 173937.02Quina 1
- 100576.11Quadra 1
- 188912.02Terno 1
- 00Sena 2
- 193170.34Quina 2
- 103873.69Quadra 2
- 187672.03Terno 2
PK qYiwBI I
Quina (1).xmlnu [
- 477412/09/201805|09|18|43|78SÃO PAULOSPESPAÇO LOTERIAS CAIXA11753179.525877995.9813/09/20189082435.0410300000
- 00Quina
- 1624182.87Quadra
- 1318277.3Terno
- 2853921.96Duque
PK qY
TimeMania.xmlnu [
- BOTAFOGO/RJ123011/09/201807|21|27|34|64|68|76SERRA NEGRASPCAMINHÃO DA SORTE178863413/09/20187015429.417200000
- 007
- 517638.626
- 192656.195
- 322764
- 2984723
- 227535TimeCoracao
PK qY/ /
LotoFacil.xmlnu [
-
1811
08/05/2019
SAO PAULO, SP
Caminho da Sorte
0,00
02|03|04|05|06|07|08|10|12|13|14|18|20|21|24
3
503.787,69
619
1.073,23
23610
20,00
252927
8,00
1293977
4,00
25.359.592,00
10/05/2019
2.000.000,00
41.801.800,70
1
PK qYrI? ? Federal.xmlnu [
- O BILHETE GANHADOR DO PRIMEIRO PRÊMIO FOI DISTRIBUIDO PARA BOTUCATU/SP531924/07/2019SÃO PAULOSP
- 350000Bilhete 179.030
- 18000Bilhete 249.451
- 15000Bilhete 386.891
- 12000Bilhete 482.987
- 10023Bilhete 567.146
PK HqYc} } Util.phpnu [ PK qY{R R
} Loteca.xmlnu [ PK qYlC C t Quina.xmlnu [ PK qY$' ' LotoGol.xmlnu [ PK qYZѝs s R links.phpnu 6$ PK qY0h h
Z LotoMania.xmlnu [ PK qYNW=( ( megasena.xml.zipnu [ PK qYp g MegaSena.xmlnu [ PK qY
_
U DuplaSena.xmlnu [ PK qYiwBI I
Quina (1).xmlnu [ PK qY
TimeMania.xmlnu [ PK qY/ /
E LotoFacil.xmlnu [ PK qYrI? ? $ Federal.xmlnu [ PK
+(