エラーをSUPRESSしようとする必要はありませんので、私はこれが好き:
/**
* Check value to find if it is serialized data.
*
* Function borrowed from Wordpress.
*
* @param mixed $data Value to check to see if was serialized.
* @return bool False if not serialized and true if it was.
*/
function is_serialized($data) {
// if it isn't a string, it isn't serialized
if (! is_string($data))
return false;
$data = trim($data);
if ('N;' == $data)
return true;
$length = strlen($data);
if ($length < 4)
return false;
if (':' !== $data[1])
return false;
$lastc = $data[$length-1];
if (';' !== $lastc && '}' !== $lastc)
return false;
$token = $data[0];
switch ($token) {
case 's' :
if ('"' !== $data[$length-2])
return false;
case 'a' :
case 'O' :
return (bool) preg_match("/^{$token}:[0-9]+:/s", $data);
case 'b' :
case 'i' :
case 'd' :
return (bool) preg_match("/^{$token}:[0-9.E-]+;\$/", $data);
}
return false;
}
$string = "a:1:{s:19:\"is_featured_service\";b:0;}";
$x = is_serialized($string)
? unserialize($string)
: 'Some default value';
あなたのコードは問題ありません。 –