php による通常の特殊文字のエスケープ方法: 最初に PHP サンプル ファイルを作成し、次に文字列を定義し、最後にバックスラッシュで特殊文字をエスケープし、変数を解析します。
推奨: 「PHP ビデオ チュートリアル 」
質問
最近使用した PHP 正規表現 、式の文字列を記述するときにいくつかの問題が発生しました。バックスラッシュ "\" をいつ使用する必要があるのかわかりません。次に、並べ替えを行います。
PHP 文字列
PHP 文字列を定義するには 4 つの方法があります:
- 一重引用符
- 二重引用符
- ここドキュメント構文構造
- nowdoc 構文構造 (PHP 5.3.0 以降)
文字列を定義する場合、特殊文字はエスケープされ、変数は解析されます。
特殊文字には次のものが含まれます:
##項目 | コンテンツ | 備考 | # #改行
\n | LF または 0x0A |
##Carriage Enter |
\r
CR または 0x0D |
| #水平タブ | \t
HT または 0x09 |
| 垂直タブ | \v
VT または 0x0B |
| ページ変更 | \f
FF または 0x0C |
| バックスラッシュ | \\
|
##ドル記号 |
\$ |
|
二重引用符 |
#\" |
| #一重引用符 | \' |
| 8 進文字 | \[0-7]{1,3} |
| 16 進文字 | #\x[0-9A-Fa-f]{1,2} |
|
この部分の詳細については、PHP マニュアルを参照してください。簡単に説明します:
一重引用符内では、一重引用符 (') とバックスラッシュ (\) をエスケープし、他の文字の本来の意味を出力します。
##二重引用符では、二重引用符 (\") を除く特殊文字がエスケープされ、変数が解析されます。 したがって、これら 2 つの一般的な文字列定義では、バックスラッシュは常にバー (\) である必要があります。 PHP 正規表現PHP では 2 セットの正規表現関数ライブラリが提供されています: [参考]1 セットは PCRE (Perl 互換正規表現) ライブラリによって提供されます。プレフィックス "preg_" の付いた名前の関数を使用します。 POSIX (Unix のポータブル オペレーティング システム インターフェイス) 拡張機能によって提供される関数のセット (PHP のデフォルト)。 "ereg_" プレフィックスの名前が付いた関数を使用します。
正規表現は、一致、置換、分割の機能を提供します。現在、perl スタイルの正規関数のみが使用されます。以下は、このタイプの文字列の説明のみです。
Perl スタイルの正規表現は、次のように区切り文字 ("/" または "#") に含める必要があります。 [参考] $str = 'http://www.youku.com/show_page/id_ABCDEFG.html';
$regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i';
$regex = '#^http://([\w.]+)/([\w]+)/([\w]+)\.html$#i';
ログイン後にコピー
URL を分割するには、$regex 変数で以下を定義します。正規表現文字列: ^http://([\w.] )/([\w] )/([\w ] ).html$この文字列には次のものが含まれます「/」や「.」などの特殊文字は、次のように Perl スタイルでバックスラッシュ (「\」) を使用してエスケープして定義する必要があります。 :^http:\/\/([\ w.] )\/([\w] )\/([\w] )\.html$同時にこの文字列を区切り文字に含める必要があるため、上記 2 種類の式の場合、区切り文字として「#」を使用する場合、「/」をエスケープする必要はありません。次の単一文字に一致する場合は、バックスラッシュ ("\") を使用してエスケープする必要があります: "\", "? ","*","^","$"," ","( ",")","|","{","["Perl スタイルの正規表現では、次の 1 文字、または上記で一致しない 1 文字に一致する場合、次のことも必要です。バックスラッシュ ("\") でエスケープする: ##^=}]/:<>.'"
概要
正しい Perl スタイルを記述するには正規表現文字列。次の 3 つの手順が必要です。
正しい正規表現を作成し、特殊文字の変換に注意してください。 定義
それを区切り文字に入れて、Perl スタイルのエスケープ規則を使用してエスケープします。
PHP の文字列定義に従って上記の文字列の内容をエスケープします
以上がPHPで通常の特殊文字をエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。