Skip to content

Instantly share code, notes, and snippets.

@danielcbaldwin
Created March 21, 2011 19:31
Show Gist options
  • Save danielcbaldwin/880041 to your computer and use it in GitHub Desktop.
Save danielcbaldwin/880041 to your computer and use it in GitHub Desktop.
A handy function for PHP that checks if a string is actually something that has been serialized
<?php
/**
* Checks if data is serialized
* @param mixed $data
*/
public function is_serialized($data) {
if (!is_string( $data)) {
return false;
}
$data = trim($data);
if ('N;' == $data) {
return true;
}
if (!preg_match('/^([adObis]):/', $data, $badions)) {
return false;
}
switch ($badions[1]) {
case 'a' :
case 'O' :
case 's' :
if (preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data)) {
return true;
}
break;
case 'b' :
case 'i' :
case 'd' :
if (preg_match("/^{$badions[1]}:[0-9.E-]+;\$/", $data)) {
return true;
}
break;
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment