国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

對象串行化

Jun 08, 2016 pm 05:33 PM
php serialize sleep user

<script>ec(2);</script>

串行化可以把變量包括對象,轉(zhuǎn)化成連續(xù)bytes數(shù)據(jù). 你可以將串行化后的變量存在一個文件里或在網(wǎng)絡(luò)上傳輸. 然后再反串行化還原為原來的數(shù)據(jù). 你在反串行化類的對象之前定義的類,PHP可以成功地存儲其對象的屬性和方法. 有時你可能需要一個對象在反串行化后立即執(zhí)行. 為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.

  當(dāng)一個對象被串行化,PHP會調(diào)用__sleep方法(假如存在的話). 在反串行化一個對象后,PHP 會調(diào)用__wakeup方法. 這兩個方法都不接受參數(shù). __sleep方法必須返回一個數(shù)組,包含需要串行化的屬性. PHP會拋棄其它屬性的值. 假如沒有__sleep方法,PHP將保存所有屬性.

  例子6.16顯示了如何用__sleep和__wakeup方法來串行化一個對象. Id屬性是一個不打算保留在對象中的臨時屬性. __sleep方法保證在串行化的對象中不包含id屬性. 當(dāng)反串行化一個User對象,__wakeup方法建立id屬性的新值. 這個例子被設(shè)計(jì)成自我保持. 在實(shí)際開發(fā)中,你可能發(fā)現(xiàn)包含資源(如圖像或數(shù)據(jù)流)的對象需要這些方法.

  Listing 6.16 Object serialization



class User
{
public $name;
public $id;

function __construct()
{
//give user a unique ID 賦予一個不同的ID
$this->id = uniqid();
}

function __sleep()
{
//do not serialize this->id 不串行化id
return(array("name"));
}

function __wakeup()
{
//give user a unique ID
$this->id = uniqid();
}
}

//create object 建立一個對象
$u = new User;
$u->name = "Leon";

//serialize it 串行化 注重不串行化id屬性,id的值被拋棄
$s = serialize($u);

//unserialize it 反串行化 id被重新賦值
$u2 = unserialize($s);

//$u and $u2 have different IDs $u和$u2有不同的ID
print_r($u);
print_r($u2);
?>

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ファイルアップロードをPHPで安全に処理する方法は? ファイルアップロードをPHPで安全に処理する方法は? Jul 08, 2025 am 02:37 AM

PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認(rèn)し、ファイル名とパスを制御し、サーバー制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認(rèn)し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機(jī)能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫真を再利用して、潛在的な悪意のあるデータをクリアします。

PHPの參照により、値ごとに変數(shù)をどのように渡しますか? PHPの參照により、値ごとに変數(shù)をどのように渡しますか? Jul 08, 2025 am 02:42 AM

inphp、variablySarepassedByValueByDefault、意味することを意味します

発電機(jī)はPHPでどのように機(jī)能しますか? 発電機(jī)はPHPでどのように機(jī)能しますか? Jul 11, 2025 am 03:12 AM

ageneratorinphpisamemory-efficientwaytoateate-overdeatatasetasetasetasetsinging valueseintimeintimeturningthemallatonce.1.generatorsususedeywordproducevaluesedemand、memoryusage.2を還元すること。2

PHPヘッダーの場所AJAXコールが機(jī)能していません PHPヘッダーの場所AJAXコールが機(jī)能していません Jul 10, 2025 pm 01:46 PM

Ajax要求のヘッダー( '場所:...')が無効である理由は、ブラウザがページリダイレクトを自動的に実行しないためです。 AJAXリクエストでは、サーバーによって返される302ステータスコードとロケーションヘッダー情報は、ジャンプ動作をトリガーするのではなく、応答データとして処理されるためです。ソリューションは次のとおりです。1。PHPでJSONデータを返し、ジャンプURLを含みます。 2.フロントエンドのAJAXコールバックのリダイレクトフィールドを確認(rèn)し、window.location.hrefで手動でジャンプします。 3. PHP出力がJSONのみであることを確認(rèn)して、障害を解析することを避けます。 4。ドメインを超えた問題に対処するには、適切なCORSヘッダーを設(shè)定する必要があります。 5.キャッシュ干渉を防ぐために、タイムスタンプを追加したり、キャッシュを設(shè)定したりできます。

PHPでのセッションハイジャックを防ぐ方法は? PHPでのセッションハイジャックを防ぐ方法は? Jul 11, 2025 am 03:15 AM

PHPでのセッションハイジャックを防ぐには、次の測定値をとる必要があります。1。httpsを使用して送信を暗號化し、session.cookie_secure = 1をphp.iniに設(shè)定します。 2. HTTPonly、Secure、SamesiteなどのセキュリティCookie屬性を設(shè)定します。 3。ユーザーがログインまたはアクセス許可を変更して変更を変更してセッションIDを変更したときにsession_regenerate_id(true)を呼び出します。 4.セッションのライフサイクルを制限し、GC_MAXLIFETIMEを合理的に構(gòu)成し、ユーザーのアクティビティ時間を記録します。 5。SessionIDをURLに公開することを禁止し、SESSION.USE_ONLYを設(shè)定します

URLENCODEを使用してPHPで文字列をエンコードする方法 URLENCODEを使用してPHPで文字列をエンコードする方法 Jul 11, 2025 am 03:22 AM

urlencode()関數(shù)は、文字列をURLセーフ形式にエンコードするために使用されます。これは、非過去の文字( - 、_、および。を除く)に、2桁の16進(jìn)數(shù)が続くパーセント記號に置き換えられます。たとえば、スペースは標(biāo)識に変換され、感嘆符は!に変換され、漢字はUTF-8エンコーディングフォームに変換されます。使用する場合、URL構(gòu)造の損傷を避けるために、URL全體ではなく、パラメーター値のみをエンコードする必要があります。パスセグメントなどのURLの他の部分の場合、rawurlencode()関數(shù)を使用する必要があります。配列パラメーターを処理する場合、http_build_query()を使用して、各値でurlencode()を自動的にエンコードするか、データの安全な転送を確保することができます。ただ

PHPのインデックスごとに文字列內(nèi)の文字にアクセスする方法 PHPのインデックスごとに文字列內(nèi)の文字にアクセスする方法 Jul 12, 2025 am 03:15 AM

PHPでは、四角い括弧または巻き毛裝具を使用して文字列固有のインデックス文字を取得できますが、正方形のブラケットをお勧めします。インデックスは0から始まり、範(fàn)囲外のアクセスはnull値を返し、値を割り當(dāng)てることができません。 MB_SUBSTRは、マルチバイト文字を処理するために必要です。例:$ str = "hello"; echo $ str [0];出力h; MB_Substr($ str、1,1)などの漢字は、正しい結(jié)果を得る必要があります。実際のアプリケーションでは、ループする前に文字列の長さをチェックする必要があり、ダイナミック文字列を有効性のために検証する必要があり、多言語プロジェクトはマルチバイトセキュリティ関數(shù)を均一に使用することをお勧めします。

PHP文字列の最初のn文字を取得します PHP文字列の最初のn文字を取得します Jul 11, 2025 am 03:17 AM

substr()またはmb_substr()を使用して、phpで最初のn文字を取得できます。特定の手順は次のとおりです。1。substr($ string、0、n)を使用して、ASCII文字に適しており、シンプルで効率的です。 2。マルチバイト文字(中國語など)、MB_Substr($ String、0、n、 'UTF-8')を処理し、MBSTRING拡張機(jī)能が有効になっていることを確認(rèn)します。 3.文字列にhtmlまたはwhitespace文字が含まれている場合、最初にstrip_tags()を使用してタグとtrim()を削除してスペースをきれいにし、結(jié)果がきれいであることを確認(rèn)するためにインターセプトする必要があります。

See all articles