跳到内容
导航菜单
切换导航
登录
产品
行动
自动化任何工作流
包装
托管和管理程序包
安全
查找并修复漏洞
代码空间
即时开发环境
GitHub Copilot公司
使用AI编写更好的代码
代码审查
管理代码更改
问题
计划和跟踪工作
讨论
在代码外协作
探索
所有功能
文档
GitHub技能
博客
解决
按大小
企业
团队
创业公司
按行业划分
保健
金融服务
制造业
按用例
CI/CD和自动化
开发运营
DevSecOps公司
资源
话题
人工智能
开发运营
安全
软件开发
查看全部
探索
学习途径
白皮书、电子书、网络研讨会
客户案例
合作伙伴
开放源代码
GitHub赞助商
资助开源开发人员
ReadME项目
GitHub社区文章
存储库
话题
趋向
收藏
企业
企业平台
人工智能驱动的开发者平台
可用的加载项
高级安全
企业级安全功能
GitHub Copilot公司
企业级AI功能
特优支持
企业级全天候支持
定价
搜索或跳转到。。。
搜索代码、存储库、用户、问题、推送请求。。。
搜索
清除
搜索语法提示
提供反馈
我们阅读了每一条反馈,并非常认真地对待您的意见。
包括我的电子邮件地址以便联系我
保存的搜索
使用保存的搜索更快地筛选结果
姓名
查询
要查看所有可用的限定符,请参阅我们的
文档
.
登录
注册
重置焦点
您使用另一个选项卡或窗口登录。
重新加载
刷新会话。
您在另一个选项卡或窗口中注销。
重新加载
刷新会话。
您在另一个选项卡或窗口上切换了帐户。
重新加载
刷新会话。
解除警报
{{消息}}
WordPress(文字出版社)
/
文字印刷-开发
公共镜像
镜像自
git://develop.git.wordpress.org/
通知
您必须登录才能更改通知设置
福克
2.5公里
星星
2.5公里
代码
Pull请求
1.7公里
行动
安全
洞察力
其他导航选项
代码
Pull请求
行动
安全
洞察力
文件夹
6.5
面包屑
文字印刷-开发
/
型钢混凝土
/
wp包括
/
atomlib.php型
责备
责备
最近一次提交
历史
历史
397行(332个位置)·11.7 KB
6.5
面包屑
文字印刷-开发
/
型钢混凝土
/
wp包括
/
atomlib.php型
顶部
文件元数据和控件
代码
责备
397行(332个位置)·11.7 KB
原始
1
2
三
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
<?
php(电话)
/**
*Atom联合格式PHP库
*
*@包AtomLib
*@链接
http://code.google.com/p/phpatomlib/
*
*@作者Elias Torres<
elias@torrez.us
>
*@版本0.4
*@自2.3.0起
*/
/**
*存储公共Atom提要属性的结构
*
*@包AtomLib
*/
班
原子馈送
{
/**
*商店链接
*@var数组
*@access公共
*/
无功功率,无功功率
$
链接
=
阵列
();
/**
*商店类别
*@var数组
*@access公共
*/
无功功率,无功功率
$
类别
=
阵列
();
/**
*店铺条目
*
*@var数组
*@access公共
*/
无功功率,无功功率
$
条目
=
阵列
();
}
/**
*存储Atom条目属性的结构
*
*@包AtomLib
*/
班
AtomEntry(原子入口)
{
/**
*存储链接
*@var数组
*@access公共
*/
无功功率,无功功率
$
链接
=
阵列
();
/**
*商店类别
*@var数组
*@access公共
*/
无功功率,无功功率
$
类别
=
阵列
();
}
/**
*AtomLib原子分析器API
*
*@包AtomLib
*/
班
原子分析器
{
无功功率,无功功率
$
纳秒
=
'
http://www.w3.org/2005/Atom
'
;
无功功率,无功功率
$
ATOM_内容_元素
=
阵列
(
'
内容
'
,
'
总结
'
,
'
标题
'
,
'
字幕
'
,
'
权利
'
);
无功功率,无功功率
$
原子_执行_元素
=
阵列
(
'
身份证件
'
,
'
已更新
'
,
'
出版
'
,
'
草案
'
);
无功功率,无功功率
$
调试
=
假
;
无功功率,无功功率
$
深度
=
0
;
无功功率,无功功率
$
缩进
=
2
;
无功功率,无功功率
$
内部(_content)
;
无功功率,无功功率
$
ns_上下文
=
阵列
();
无功功率,无功功率
$
ns_分类
=
阵列
();
无功功率,无功功率
$
content_ns_decls(内容_拒绝)
=
阵列
();
无功功率,无功功率
$
内容_上下文
=
阵列
();
无功功率,无功功率
$
is_xhtml(_X)
=
假
;
无功功率,无功功率
$
is_html(_H)
=
假
;
无功功率,无功功率
$
是文本(_T)
=
真的
;
无功功率,无功功率
$
跳过的div
=
假
;
无功功率,无功功率
$
文件
=
"
php://输入
"
;
无功功率,无功功率
$
喂养
;
无功功率,无功功率
$
现在的
;
/**
*PHP5构造函数。
*/
功能
__构造
() {
$
这
->
喂养
=
新的
原子馈送
();
$
这
->
现在的
=
无效的
;
$
这
->
map_attrs_func(映射属性函数)
=
阵列
(
__类别__
,
'
map_attrs(映射属性)
'
);
$
这
->
映射_xmlns_func
=
阵列
(
__类别__
,
'
映射(_XMLN)
'
);
}
/**
*PHP4构造函数。
*/
公众的
功能
原子分析器
() {
自己
::
__构造
();
}
/**
*将属性映射到key=“val”
*
*@param string$k键
*@param string$v值
*@return字符串
*/
公众的
静止的
功能
map_attrs(映射属性)
(
$
k个
,
$
v(v)
) {
返回
"
$
k个
=
\"
$
v(v)
\""
;
}
/**
*将XML命名空间映射到字符串。
*
*@param indexish$p XML命名空间元素索引
*@param array$n双元素数组对。
[0=>{namespace},1=>{url}]
*@return字符串'xmlns=“{url}”'或'xmlns:{namespace}=“{url}”''
*/
公众的
静止的
功能
映射(_XMLN)
(
$
第页
,
$
n个
) {
$
除息的
=
"
圣诞节
"
;
如果
(
0
<
斯特伦
(
$
n个
[
0
]) ) {
$
除息的
.=
"
:
{
$
n个
[
0
]}"
;
}
返回
"{
$
除息的
}
=
\"{
$
n个
[
1
]}\""
;
}
功能
_第页
(
$
消息
) {
如果
(
$
这
->
调试
) {
打印
str_重复
(
"
"
,
$
这
->
深度
*
$
这
->
缩进
) .
$
消息
.
“\n”
;
}
}
功能
错误处理程序
(
$
日志级别
,
$
日志_文本
,
$
错误_文件
,
$
错误行
) {
$
这
->
错误
=
$
日志_文本
;
}
功能
解析
() {
设置错误处理程序
(
阵列
(&
$
这
,
'
错误处理程序
'
));
阵列_取消移动
(
$
这
->
ns_上下文
,
阵列
());
如果
( !
函数_存在
(
'
xml_parser_create_ns
'
) ) {
触发器错误
(
__
(
"
PHP的XML扩展不可用。
请与托管提供商联系以启用PHP的XML扩展。
"
) );
返回
假
;
}
$
解析器
=
xml_parser_create_ns
();
xml设置对象
(
$
解析器
,
$
这
);
xml元素句柄
(
$
解析器
,
"
start_element(启动元素)
"
,
"
end_element(元素)
"
);
xml_parser_set_选项
(
$
解析器
,
XML_OPTION_CASE_折叠
,
0
);
xml_parser_set_选项
(
$
解析器
,
XML_OPTION_SKIP_白色
,
0
);
xml_set_character_data_handler
(
$
解析器
,
"
cdata公司
"
);
xml_set_default_handler
(
$
解析器
,
"
_默认
"
);
xml_set_start_namespace_decl_handler
(
$
解析器
,
"
开始(_N)
"
);
xml_set_end_namespace_decl_handler
(
$
解析器
,
"
结束(_N)
"
);
$
这
->
内容
=
''
;
$
ret(雷特)
=
真的
;
$
英尺/平方英尺
=
fopen公司
(
$
这
->
文件
,
"
第页
"
);
虽然
(
$
数据
=
弗雷德
(
$
英尺/平方英尺
,
4096
)) {
如果
(
$
这
->
调试
)
$
这
->
内容
.=
$
数据
;
如果
(!
xml_parse
(
$
解析器
,
$
数据
,
费夫
(
$
英尺/平方英尺
))) {
/*转换器:1:错误消息,2:行号*/
触发器错误
(
把格式数据写成串
(
__
(
'
XML错误:%1$s,第%2$s行
'
).
“\n”
,
xml_error_string
(
xml获取错误代码
(
$
解析器
)),
xml_get_current_line_number
(
$
解析器
)));
$
ret(雷特)
=
假
;
打破
;
}
}
f关闭
(
$
英尺/平方英尺
);
xml_parser_free
(
$
解析器
);
未设置(
$
解析器
);
恢复错误处理程序
();
返回
$
ret(雷特)
;
}
功能
start_element(启动元素)
(
$
解析器
,
$
名称
,
$
属性
) {
$
名称_部件
=
爆炸
(
"
:
"
,
$
名称
);
$
标签
=
阵列_弹出
(
$
名称_部件
);
转换
(
$
名称
) {
案例
$
这
->
纳秒
.
'
:馈送
'
:
$
这
->
现在的
=
$
这
->
喂养
;
打破
;
案例
$
这
->
纳秒
.
'
:条目
'
:
$
这
->
现在的
=
新的
AtomEntry(原子入口)
();
打破
;
};
$
这
->
_第页
(
"
启动元素('
$
名称
')
"
);
#$this->_p(print_r($this->ns_contexts,true));
#$this->_p('current('.$this->current.')');
阵列_取消移动
(
$
这
->
ns_上下文
,
$
这
->
ns_分类
);
$
这
->
深度
++;
如果
(!
空的
(
$
这
->
内容(_C)
)) {
$
这
->
content_ns_decls(内容_拒绝)
=
阵列
();
如果
(
$
这
->
is_html(_H)
||
$
这
->
是文本(_T)
)
触发器错误
(
"
元素中发现无效内容。
如果内容包含标记,则其类型不得为text或html。
"
);
$
属性_前缀
=
阵列
();
//解析属性的前缀
foreach公司
(
$
属性
作为
$
钥匙
=>
$
价值
) {
$
带_前缀
=
$
这
->
ns_to_前缀
(
$
钥匙
,
真的
);
$
属性_前缀
[
$
带_前缀
[
1
]] =
$
这
->
xml_escape
(
$
价值
);
}
$
属性_str
=
参加
(
'
'
,
阵列_贴图
(
$
这
->
map_attrs_func(映射属性函数)
,
数组键
(
$
属性_前缀
),
数组_值
(
$
属性前缀
)));
如果
(
斯特伦
(
$
属性_str
) >
0
) {
$
属性_字符串
=
"
"
.
$
属性_str
;
}
$
带_前缀
=
$
这
->
ns_to_前缀
(
$
名称
);
如果
(!
$
这
->
is_declared_content_ns
(
$
带_前缀
[
0
])) {
阵列_推送
(
$
这
->
content_ns_decls(内容_拒绝)
,
$
带_前缀
[
0
]);
}
$
xmlns_str
=
''
;
如果
(
计数
(
$
这
->
内容_ns_decls
) >
0
) {
阵列_取消移动
(
$
这
->
内容_上下文
,
$
这
->
content_ns_decls(内容_拒绝)
);
$
xmlns_str
.=
参加
(
'
'
,
阵列_贴图
(
$
这
->
映射_xmlns_func
,
数组键
(
$
这
->
内容_上下文
[
0
]),
数组_值
(
$
这
->
内容_上下文
[
0
])));
如果
(
斯特伦
(
$
xmlns_str
) >
0
) {
$
xmlns_str
=
"
"
.
$
xmlns_str
;
}
}
阵列_推送
(
$
这
->
内容(_C)
,
阵列
(
$
标签
,
$
这
->
深度
,
"
<
"
.
$
带_前缀
[
1
] .
"{
$
xmlns_str
}{
$
属性_str
}"
.
"
>
"
));
}
其他的
如果
(
阵列(_A)
(
$
标签
,
$
这
->
ATOM_内容_元素
) ||
阵列(_A)
(
$
标签
,
$
这
->
原子_执行_元素
)) {
$
这
->
内容(_C)
=
阵列
();
$
这
->
is_xhtml(_X)
=
$
属性
[
'
类型
'
] ==
'
xhtml格式
'
;
$
这
->
is_html(_H)
=
$
属性
[
'
类型
'
] ==
'
html格式
'
||
$
属性
[
'
类型
'
] ==
'
文本/html
'
;
$
这
->
是文本(_T)
= !
阵列(_A)
(
'
类型
'
,
数组键
(
$
属性
)) ||
$
属性
[
'
类型
'
] ==
'
文本
'
;
$
类型
=
$
这
->
is_xhtml(_X)
?
'
XHTML(XHTML)
'
: (
$
这
->
is_html(_H)
?
'
HTML格式
'
: (
$
这
->
是文本(_T)
?
'
文本
'
:
$
属性
[
'
类型
'
]));
如果
(
阵列(_A)
(
'
型钢混凝土
'
,
数组键
(
$
属性
))) {
$
这
->
现在的
->
$
标签
=
$
属性
;
}
其他的
{
阵列_推送
(
$
这
->
内容(_C)
,
阵列
(
$
标签
,
$
这
->
深度
,
$
类型
));
}
}
其他的
如果
(
$
标签
==
'
链接
'
) {
阵列_推送
(
$
这
->
现在的
->
链接
,
$
属性
);
}
其他的
如果
(
$
标签
==
'
类别
'
) {
阵列_推送
(
$
这
->
现在的
->
类别
,
$
属性
);
}
$
这
->
ns_decls公司
=
阵列
();
}
功能
end_element(元素)
(
$
解析器
,
$
名称
) {
$
名称_部件
=
爆炸
(
"
:
"
,
$
名称
);
$
标签
=
阵列_弹出
(
$
名称部件
);
$
帐户
=
计数
(
$
这
->
内部(_content)
);
#如果我们在内容中,那么让我们继续序列化它
如果
(!
空的
(
$
这
->
内容(_C)
)) {
#如果我们要结束原始内容元素
#那么让我们完成内容
如果
(
$
这
->
内容(_C)
[
0
][
0
] ==
$
标签
&&
$
这
->
内容(_C)
[
0
][
1
] ==
$
这
->
深度
) {
$
原始类型
=
$
这
->
内容(_C)
[
0
][
2
];
阵列_移位
(
$
这
->
内容(_C)
);
$
新内容
=
阵列
();
foreach公司
(
$
这
->
内部(_content)
作为
$
c(c)
) {
如果
(
计数
(
$
c(c)
) ==
三
) {
阵列_推送
(
$
新内容
,
$
c(c)
[
2
]);
}
其他的
{
如果
(
$
这
->
is_xhtml(_X)
||
$
这
->
是文本(_T)
) {
阵列_推送
(
$
新内容
,
$
这
->
xml_escape
(
$
c(c)
));
}
其他的
{
阵列_推送
(
$
新内容
,
$
c(c)
);
}
}
}
如果
(
阵列(_A)
(
$
标签
,
$
这
->
ATOM_内容_元素
)) {
$
这
->
现在的
->
$
标签
=
阵列
(
$
原始类型
,
参加
(
''
,
$
新内容
));
}
其他的
{
$
这
->
现在的
->
$
标签
=
参加
(
''
,
$
新内容
);
}
$
这
->
内容(_C)
=
阵列
();
}
其他的
如果
(
$
这
->
内容(_C)
[
$
帐户
-
1
][
0
] ==
$
标签
&&
$
这
->
内容(_C)
[
$
帐户
-
1
][
1
] ==
$
这
->
深度
) {
$
这
->
内容(_C)
[
$
帐户
-
1
][
2
] =
子(substr)
(
$
这
->
内容(_C)
[
$
帐户
-
1
][
2
],
0
,-
1
) .
"
/>
"
;
}
其他的
{
#否则,只需完成当前元素的内容
$
结束标记
=
$
这
->
ns_to_前缀
(
$
名称
);
阵列_推送
(
$
这
->
内容(_C)
,
阵列
(
$
标签
,
$
这
->
深度
,
"
</
$
结束标记
[
1
]
>
"
));
}
}
阵列_移位
(
$
这
->
ns_文本
);
$
这
->
深度
--;
如果
(
$
名称
== (
$
这
->
纳秒
.
'
:条目
'
)) {
阵列_推送
(
$
这
->
喂养
->
条目
,
$
这
->
现在的
);
$
这
->
现在的
=
无效的
;
}
$
这
->
_第页
(
"
end_element('
$
名称
')
"
);
}
功能
开始(_N)
(
$
解析器
,
$
前缀
,
$
uri(用户界面)
) {
$
这
->
_第页
(
"
启动:
"
.
$
前缀
.
"
:
"
.
$
uri(用户界面)
);
阵列_推送
(
$
这
->
ns_分类
,
阵列
(
$
前缀
,
$
uri(用户界面)
));
}
功能
结束(_N)
(
$
解析器
,
$
前缀
) {
$
这
->
_对
(
"
结束时间:#
"
.
$
前缀
.
"
#
"
);
}
功能
cdata公司
(
$
解析器
,
$
数据
) {
$
这
->
_第页
(
"
数据:#
"
.
str_替换
(
阵列
(
“\n”
),
阵列
(
"\\
n个
"
),
修剪
(
$
数据
)) .
"
#
"
);
如果
(!
空的
(
$
这
->
内容(_C)
)) {
阵列_推送
(
$
这
->
内容(_C)
,
$
数据
);
}
}
功能
_默认
(
$
解析器
,
$
数据
) {
#什么时候打电话?
}
功能
ns_to_前缀
(
$
q名称
,
$
属性
=
假
) {
#拆分'
http://www.w3.org/1999/xhtml:div
'到('http','//www.w3.org/1999/xhtml','div')
$
组件
=
爆炸
(
"
:
"
,
$
q名称
);
#抓住最后一个(例如div)
$
名称
=
阵列_弹出
(
$
组件
);
如果
(!
空的
(
$
组件
)) {
#重新联接名称空间组件
$
纳秒
=
参加
(
"
:
"
,
$
组件
);
foreach公司
(
$
这
->
ns_上下文
作为
$
上下文
) {
foreach公司
(
$
上下文
作为
$
映射
) {
如果
(
$
映射
[
1
] ==
$
纳秒
&&
斯特伦
(
$
映射
[
0
]) >
0
) {
返回
阵列
(
$
映射
,
"
$
映射
[
0
]
:
$
名称
"
);
}
}
}
}
如果
(
$
属性
) {
返回
阵列
(
无效的
,
$
名称
);
}
其他的
{
foreach公司
(
$
这
->
ns_上下文
作为
$
上下文
) {
foreach公司
(
$
上下文
作为
$
映射
) {
如果
(
斯特伦
(
$
映射
[
0
]) ==
0
) {
返回
阵列
(
$
映射
,
$
名称
);
}
}
}
}
}
功能
is_declared_content_ns
(
$
新建映射(_M)
) {
foreach公司
(
$
这
->
内容_上下文
作为
$
上下文
) {
foreach公司
(
$
上下文
作为
$
映射
) {
如果
(
$
新建映射(_M)
==
$
映射
) {
返回
真的
;
}
}
}
返回
假
;
}
功能
xml_escape
(
$
内容
)
{
返回
str_替换
(
阵列
(
'
&
'
,
'
"
'
,
"
'
"
,
'
<
'
,
'
>
'
),
阵列
(
'
&;
'
,
'
";
'
,
'
&载脂蛋白;
'
,
'
&它;
'
,
'
>;
'
),
$
内容
);
}
}
此时无法执行该操作。