解析 – 永夜 https://www.shuijingwanwq.com 没有不值得去解决的问题,也没有不值得去学习的技术! Tue, 06 Jun 2023 01:09:33 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.0 在 PHP 中将 20231020105244000+0800 转换为 Y-m-d H:i:s 的格式 https://www.shuijingwanwq.com/2023/06/06/7692/ https://www.shuijingwanwq.com/2023/06/06/7692/#respond Tue, 06 Jun 2023 01:09:33 +0000 https://www.shuijingwanwq.com/?p=7692 浏览量: 73 1、现有时间字段,其值为:20231020105244000+0800,可得知其在 PHP 的格式为:YmdHisvO。参考:https://www.php.net/manual/zh/datetime.format.php 2、基于 DateTime::createFromFormat — date_create_from_format — 根据指定格式解析时间字符串。打印返回的 DateTime 对象。如图1
基于 DateTime::createFromFormat -- date_create_from_format — 根据指定格式解析时间字符串。打印返回的 DateTime 对象。

图1



print_r(DateTime::createFromFormat("YmdHisvO", '20231020105244000+0800'));





DateTime Object
(
    [date] => 2023-10-20 10:52:44.000000
    [timezone_type] => 1
    [timezone] => +08:00
)


3、基于 DateTimeInterface::format — DateTimeImmutable::format — DateTime::format — date_format — 按照指定格式返回格式化后的日期 。


echo DateTime::createFromFormat("YmdHisvO", '20231020105244000+0800')->format("Y-m-d H:i:s");




2023-10-20 10:52:44


]]>
https://www.shuijingwanwq.com/2023/06/06/7692/feed/ 0
xml 数据的解析的重构 https://www.shuijingwanwq.com/2021/07/20/5088/ https://www.shuijingwanwq.com/2021/07/20/5088/#respond Tue, 20 Jul 2021 06:52:36 +0000 https://www.shuijingwanwq.com/?p=5088 浏览量: 110 1、xml 数据打印如下。如图1
xml 数据打印如下

图1

<pre class="wp-block-syntaxhighlighter-code">

<xml>
	<AppId>
		<![CDATA[wxd98c58b273d21bdf]]>
	</AppId>
	<CreateTime>1626662709</CreateTime>
	<InfoType>
		<![CDATA[component_verify_ticket]]>
	</InfoType>
	<ComponentVerifyTicket>
		<![CDATA[ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA]]>
	</ComponentVerifyTicket>
</xml>

</pre>
2、现阶段是将 xml 转换为 数组。代码实现如下。libxml_disable_entity_loader 函数已自 PHP 8.0.0 起被废弃。强烈建议不要依赖本函数。


libxml_disable_entity_loader(true);
$values = Json::decode(Json::encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);


3、转换为数组后,打印结果如下。如图2
转换为数组后,打印结果如下

图2



Array
(
    [AppId] => wxd98c58b273d21bdf
    [CreateTime] => 1626662709
    [InfoType] => component_verify_ticket
    [ComponentVerifyTicket] => ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA
)



4、删除函数:libxml_disable_entity_loader。不转换为数组。直接使用对象。LIBXML_NOCDATA 表示 将 CDATA 合并为文本节点。如图3
删除函数:libxml_disable_entity_loader。不转换为数组。直接使用对象。LIBXML_NOCDATA 表示 将 CDATA 合并为文本节点

图3



$values = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
print_r($values);
echo $values->AppId;
exit;




SimpleXMLElement Object
(
    [AppId] => wxd98c58b273d21bdf
    [CreateTime] => 1626662709
    [InfoType] => component_verify_ticket
    [ComponentVerifyTicket] => ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA
)
wxd98c58b273d21bdf


]]>
https://www.shuijingwanwq.com/2021/07/20/5088/feed/ 0