String
String は文字のシーケンスです。 PHP では、文字はバイトと同じです。つまり、合計 256 個の異なる文字が存在する可能性があります。これは、PHP が Unicode をネイティブにサポートしていないことも意味します。 Unicode サポートの詳細については、関数 utf8_encode() および utf8_decode() を参照してください。
注: 文字列が非常に大きくなっても問題はありません。PHP は文字列のサイズに実装範囲を課していないため、長い文字列について心配する必要はまったくありません。
構文
文字列は 3 つのリテラルな方法で定義できます。
一重引用符
二重引用符
区切り文字
一重引用符
単純な文字列を指定する最も簡単な方法は、それを一重引用符 (文字 ') で囲むことです。
一重引用符を表すには、他の多くの言語と同様に、バックスラッシュ () でエスケープする必要があります。一重引用符の前または文字列の末尾にバックスラッシュが必要な場合は、2 つのバックスラッシュを使用します。他の文字をエスケープしようとすると、バックスラッシュ自体も表示されることに注意してください。したがって、通常はバックスラッシュ自体をエスケープする必要はありません。
注: PHP 3 では、この場合、E_NOTICE レベルの警告が発行されます。
注: 他の 2 つの構文とは異なり、一重引用符で囲まれた文字列内にある変数とエスケープ シーケンスは、変数の値で置き換えられません。
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// Outputs: Arnold once said: "I'll be back"echo 'Arnold once said: "I'll be back"';// Outputs: You deleted C:*.*?echo 'You deleted C:\*.*?';// Outputs: You deleted C:*.*?echo 'You deleted C:*.*?';// Outputs: This will not expand: n a newlineecho 'This will not expand: n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?> |
二重引用符
文字列を二重引用符 (") で囲む場合、PHP は特殊文字のエスケープ シーケンスをより多く認識します:
表 11-1. エスケープ文字
シーケンスの意味
n 改行 (LF または ASCII 文字 0x0A (10))
r 復帰 (CR または ASCII 文字 0x0D (13))
t 水平タブ (HT または ASCII 文字 0x09 (9))
バックスラッシュ
$ ドル記号
" 二重引用符
[0-7]{1,3} この正規表現シーケンスは、8 進表記で表される文字と一致します
x[0-9A-Fa-f] {1,2} この正規表現シーケンスは 16 進表記で表される文字と一致します
さらに、他の文字をエスケープしようとすると、バックスラッシュ自体も表示されます。
二重引用符で囲まれた文字列について最も重要なことは、変数名が変数値に置き換えられることです。詳細については、「文字列の解析」を参照してください。
区切り文字
文字列を区切る別の方法は、区切り文字構文 (「
終了識別子は行の最初の列から開始する必要があります。同様に、識別子は PHP の他のタグの命名規則に従う必要があります。識別子には英数字のアンダースコアのみが含まれ、アンダースコアまたは数字以外の文字で始まる必要があります。
警告
識別子を終了する行には、おそらくセミコロン (;) を除いて、他の文字を含めることはできないことに注意することが重要です。これは特に、識別子をインデントできないこと、およびセミコロンの前後にスペースやタブを含めることができないことを意味します。終了識別子の前の最初の文字は、オペレーティング システムで定義されている改行文字でなければならないことを認識することも重要です。たとえば、Macintosh システムでは r です。
このルールに違反して終了識別子が「クリーン」でなくなると、それは終了識別子とは見なされず、PHP はそれを探し続けます。この場合、適切な終了識別子が見つからないと、スクリプトの最後の行で構文エラーが発生します。
区切り文字で区切られたテキストは、二重引用符がないだけで、二重引用符で囲まれた文字列のように動作します。つまり、区切りテキスト内で引用符をエスケープする必要はありませんが、上記のエスケープ コードは引き続き使用できます。変数は展開されますが、複雑な変数を区切りリテラルで表現する場合は、文字列の場合と同じ注意が必要です。
例 11-2. 区切り文字列の例:
<?php $str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': x41EOT;?> |
注: 区切り文字のサポートは PHP 4 で追加されました。
1

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
