ホームページ php教程 php手册 Notice:unserialize()[function.unserialize]:Error错误

Notice:unserialize()[function.unserialize]:Error错误

Jun 06, 2016 pm 08:11 PM
notice unserialize

出现这个错误,可能会有几种原因,网上搜索的答案基本也是比较有针对性的一方面,关键在如何去寻找原因,并解决它。 分析一:在数据进行存储并反序列化时编码问题出错 这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行uns

出现这个错误,可能会有几种原因,网上搜索的答案基本也是比较有针对性的一方面,关键在如何去寻找原因,并解决它。

分析一:在数据进行存储并反序列化时编码问题出错
这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行unserialize()就会有问题;
解决方法一:将UTF-8编码的数据转换成GBK,PHP语言可以用iconv()函数;

分析二:重写反序列函数
一些情况可以把底层的函数重写,将gb2312转换成utf-8格式之后,每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题,所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下:
function mb_unserialize($serial_str) {<br> ? ? $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );<br> ? ? return unserialize($out);<br> }

解决方法三:对字符数据进行base64_encode,然后serialize序列化,还原提取时,unserialize()再base64_decode

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 注意: 未定義の定数ソリューションの使用 PHP 注意: 未定義の定数ソリューションの使用 Jun 24, 2023 pm 11:15 PM

PHP Notice: Useofundependentconstant の解決策 PHP 開発プロセス中に、「PHP Notice: Useofundependentconstant」というエラー メッセージが表示される場合があります。これは通常、コード内で未定義の定数が使用されていることが原因です。定数を正しく参照するには、まず定義する必要があります。定数が定義されていない場合、またはスペルが間違っている場合は、上記のエラー メッセージが表示されます。この問題を解決するいくつかの方法を次に示します

PHPで通知を表示しないように設定する方法 PHPで通知を表示しないように設定する方法 Feb 21, 2023 am 09:12 AM

php で通知を表示しないように設定する方法: 1. 「php.ini」ファイルの「error_reporting」を「error_reporting = E_ALL & ~E_NOTICE」に変更します; 2. 指定されたページにコードを「error_reporting(E_ALL ^ ) として追加しますE_NOTICE);"。

PHP unserialize() 関数を使用して逆シリアル化を実装する PHP unserialize() 関数を使用して逆シリアル化を実装する Jun 27, 2023 am 08:01 AM

シリアル化は、データ構造またはオブジェクトを保存、送信、または表現のために文字列に変換し、逆に文字列を元のデータ構造またはオブジェクトに解析するプロセスです。 PHP では、serialize() 関数を使用して変数を文字列にシリアル化し、unserialize() 関数を使用して文字列をプリミティブ データ構造またはオブジェクトに逆シリアル化できます。この記事では、PHPunserialize() 関数の使用方法と注意事項を中心に説明します。 1. アンシリアライズ

PHP 通知: 未定義のオフセット: 0 ソリューション PHP 通知: 未定義のオフセット: 0 ソリューション Jun 22, 2023 am 08:12 AM

PHP 開発では、コードを実行するとプロンプト「PHP Notice: Unknownoffset:0」が表示されることがありますが、このプロンプトには通常、配列範囲外エラーが伴います。配列の添字が指定された範囲を超えると、PHP はデフォルトでその値を NULL に設定し、通知メッセージを出します。このプロンプト メッセージはプログラムの実行には影響しませんが、プログラムの実行効率とコードの読みやすさに影響します。では、このような状況に遭遇したとき、私たちは何をすべきでしょうか?ここにいくつかの解決策があります

PHP 注意: 未定義の変数: ソリューション内のソリューション PHP 注意: 未定義の変数: ソリューション内のソリューション Jun 22, 2023 pm 10:01 PM

PHP 開発者にとって、「未定義変数」警告メッセージに遭遇することは非常に一般的なことです。この状況は通常、未定義の変数を使用しようとしたときに発生し、PHP スクリプトが正常に実行できなくなります。この記事では「PHP Notice:Unknownvariable: in solution」という問題の解決方法を紹介します。問題の原因: PHP スクリプトで、変数が初期化されていない、または値が割り当てられていない場合、「Un

PHP でのシリアライズとアンシリアライズの使用法の簡単な分析 PHP でのシリアライズとアンシリアライズの使用法の簡単な分析 Mar 24, 2023 pm 02:57 PM

PHP は、Web 開発によく使用される人気のあるプログラミング言語です。その中でも、serialize と unserialize は、PHP オブジェクトを文字列に変換し、逆シリアル化できる 2 つの非常に便利な関数です。

PHP 通知: 未定義のオフセット ソリューション PHP 通知: 未定義のオフセット ソリューション Jun 25, 2023 am 09:51 AM

PHP Notice:Unknownoffset は一般的な PHP プログラム エラーです。これは、プログラムが配列内に存在しない添字を使用しようとして、プログラムが正常に実行できなくなることを意味します。このエラーは通常、PHP インタープリタが次の警告メッセージを表示したときに発生します。 PHP Notice:Unknownoffset エラーを解決する方法は次のとおりです。 まず、コードを確認してください。

PHP 注意事項の解決策: 非オブジェクトのプロパティを取得しようとしています PHP 注意事項の解決策: 非オブジェクトのプロパティを取得しようとしています Jun 22, 2023 pm 02:43 PM

PHP Notice の解決策: Tryingtogetpropertyofnon-object PHP でコードを作成する過程で、「Tryingtogetpropertyofnon-object」というエラー メッセージが表示されることがあります。このエラー メッセージは通常、存在しないオブジェクト プロパティにアクセスしようとしてコード内でエラーが発生したために発生します。このエラー メッセージは通常、次の状況で表示されます。 オブジェクトが存在しません。

See all articles