| Server IP : 116.153.78.57 / Your IP : 43.159.78.123 Web Server : nginx/1.28.0 System : Linux 1763701629066 6.8.0-53-generic #55-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 17 15:37:52 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/www.lengcat.cn/wp-content/themes/onenav/vendor/yurunsoft/pay-sdk/src/Lib/ |
Upload File : |
<?php
namespace Yurun\PaySDK\Lib;
class XML
{
public static function fromString($string)
{
// PHP8中已经废弃
if (\PHP_VERSION_ID >= 80000) {
return (array) simplexml_load_string($string, null, \LIBXML_NOCDATA | \LIBXML_COMPACT);
}
// 填补 php <= 5.4 的安全漏洞:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_5
// 记录旧值
$oldValue = libxml_disable_entity_loader(true);
// xml解析
$result = (array) simplexml_load_string($string, null, \LIBXML_NOCDATA | \LIBXML_COMPACT);
// 恢复旧值,防止系统中其它需要用到实体加载的地方失效
if (false === $oldValue)
{
libxml_disable_entity_loader(false);
}
return $result;
}
public static function toString($data)
{
$result = '<xml>';
if (\is_object($data))
{
$_data = ObjectToArray::parse($data);
}
else
{
$_data = &$data;
}
foreach ($_data as $key => $value)
{
if (!is_scalar($value))
{
if (\is_object($value) && method_exists($value, 'toString'))
{
$value = $value->toString();
if (null === $value)
{
continue;
}
}
elseif (null !== $value)
{
$value = json_encode($value);
}
else
{
continue;
}
}
$result .= "<{$key}><![CDATA[{$value}]]></{$key}>";
}
return $result . '</xml>';
}
}