Directory / plugin
Fruti Serialized Data Audit
v1.0.0 · by frutilabs
Audit SQL dumps for broken PHP serialized values before import. Reports findings only, never changes data.
About this plugin
A plain find-and-replace on a WordPress database, or a hand-edited export, changes the text inside
serialized values but not the byte-length prefix PHP stored with every string. The import then
reports success, and widgets, theme settings, page-builder layouts or plugin options quietly
disappear. This plugin reads a .sql dump, parses every serialized payload it finds, and lists the
ones that are structurally broken, with the line number, the table it belongs to, the reason and a
short snippet.
Detected structural problems:
string_length_mismatch– a string’s declared byte length no longer matches its content, the
classic result of a naive search-and-replace or of a UTF-8/latin1 conversion.count_mismatch– an array or object declares more items than it contains.truncated– the payload ends in the middle of a structure.invalid_type– a payload starts but the expected next token is not a valid serialized value.
Supported serialization tokens: N, b, i, d, s, a, O, r, R, E and C, in both
plain and mysqldump-escaped form. C: payloads are treated as opaque bytes and are never parsed
recursively.
The plugin never modifies your data. It does not import the dump, does not connect to the database,
does not execute SQL and does not write a repaired file. It only reports.
How to use it
- Export the database you are about to import:
mysqldump -u user -p dbname > dump.sql. - Open Tools -> Fruti Serialized Data Audit, choose that
.sqlfile and press Run Audit. - Read the summary and the list of broken payloads: status, table, line, reason and snippet.
- Fix the cause with
wp search-replaceor a serialization-aware replacement, export a fresh dump
and audit it again.
Privacy
The uploaded SQL file is processed locally on your own WordPress server. It is analysed in PHP’s
upload temporary file: it is not copied into the media library, not placed in wp-content/uploads,
not saved in the plugin directory, not stored in the database and not written to logs or cache. The
plugin makes no network requests, sends no telemetry and does not transmit the dump anywhere.
Support
Questions, bug reports and support: [email protected]