ホームページ バックエンド開発 PHPチュートリアル PHPの文字エスケープに関する注意事項

PHPの文字エスケープに関する注意事項

Jul 29, 2016 am 08:39 AM
逃げる

今天碰到一个处理文件特殊字符的事情,再次注意到这个问题.

在php中:

* 以单引号为定界符的php字符串,支持两个转义\'和\\

* 以双引号为定界符的php字符串,支持下列转义:

\n 换行(LF 或 ASCII 字符 0x0A(10))

\r 回车(CR 或 ASCII 字符 0x0D(13))

\t 水平制表符(HT 或 ASCII 字符 0x09(9))

\\ 反斜线

\$ 美元符号

\" 双引号

\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符

\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符

举几个例子:

一个包含\0特殊字符的例子:

$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
ログイン後にコピー

输出结果:

----------------------

9

102 102 102 102 0 102 102 102 102

替换特殊字符的例子

$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
ログイン後にコピー

输出结果:

----------------------

8

102 102 102 102 102 102 102 102

八进制ascii码例子:

//注意,符合正则\[0-7]{1,3}的字符串,表示一个八进制的ascii码。

$str = "\0\01\02\3\7\10\011\08\8"; //这里的\8不符合要求,被修正为"\\8" (ascii为92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
ログイン後にコピー

输出结果:

----------------------

11

0 1 2 3 7 8 9 0 56 92 56

十六进制ascii码例子:

$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
ログイン後にコピー

输出结果:

----------------------

10

0 1 2 3 7 8 9 16 17 255

【推荐阅读:php入门教程

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 の preg_quote() 関数: 文字列内の特殊文字を正規表現文字にエスケープする方法 PHP の preg_quote() 関数: 文字列内の特殊文字を正規表現文字にエスケープする方法 Nov 04, 2023 pm 02:15 PM

PHP の preg_quote() 関数: 文字列内の特殊文字を正規表現文字にエスケープする方法には、特定のコード例が必要です。開発では、文字列の照合や処理に正規表現を使用することがよくあります。ただし、一部の文字列には、正規表現のメタキャラクターなどの特殊な文字が含まれている場合があります。これらの文字は特別な意味を持ち、正規表現が適切に動作しなくなる原因となります。この問題を解決するために、PHP は文字列内の特殊文字をエスケープするための preg_quote() 関数を提供します。

XSS 攻撃に対する保護措置とセキュリティ実践 XSS 攻撃に対する保護措置とセキュリティ実践 Aug 10, 2023 pm 02:39 PM

XSS 攻撃に対する保護手段とセキュリティ実践の概要 クロスサイト スクリプティング攻撃 (XSS) は、Web サイトのユーザー入力の不適切な検証とフィルタリングを悪用する一般的なセキュリティ脆弱性です。攻撃者は、悪意のあるスクリプト コードを Web ページに挿入することにより、ログイン資格情報や個人情報などのユーザーの機密情報を盗む可能性があります。当社の Web サイトとユーザーのセキュリティを保護するには、この種の攻撃から守るための保護手段とセキュリティ慣行を実装する必要があります。入力の検証とフィルタリング まず、入力されたデータが期待どおりであることを確認するために、ユーザー入力を検証してフィルタリングする必要があります。

PHP プログラミングで一般的に使用される正規表現エスケープ手法 PHP プログラミングで一般的に使用される正規表現エスケープ手法 Mar 20, 2024 am 09:00 AM

PHP プログラミングで一般的に使用される正規表現エスケープ手法には、特定のコード サンプルが必要です。正規表現は、PHP プログラミングで非常に一般的に使用されるツールです。正規表現を使用すると、テキスト内の操作をすばやく照合、検索、および置換できます。ただし、正規表現を使用する場合、エスケープする必要がある特殊文字に遭遇することがあります。エスケープしないと、予期しない一致結果が発生します。この記事では、PHP プログラミングで一般的に使用される正規表現エスケープ手法を紹介し、具体的なコード例を示します。正規表現でのエスケープスラッシュ「」

PHP 言語開発における一重引用符、二重引用符、バックスラッシュ エラーのエスケープ問題にどう対処するか? PHP 言語開発における一重引用符、二重引用符、バックスラッシュ エラーのエスケープ問題にどう対処するか? Jun 11, 2023 pm 05:33 PM

PHP 言語開発では、一重引用符、二重引用符、バックスラッシュは一般的な文字ですが、文字列を処理するときにエスケープの問題が発生する可能性があります。 PHP コードがこれらの文字を正しく処理できるようにするために、これらの問題に対処する方法を次に示します。一重引用符の問題 PHP では、文字列を表すために一重引用符が使用されますが、一重引用符の中で一重引用符を使用すると、エスケープの問題が発生します。例: $myString='I'maPHPdeveloper.'; 上記の例では、バックスラッシュを使用します。

GO 言語の文字列エスケープとアンチエスケープの実用化 GO 言語の文字列エスケープとアンチエスケープの実用化 Apr 07, 2024 pm 10:48 PM

Go 言語の文字列エスケープとアンチエスケープを使用すると、開発者は表示不可能な文字を指定したり、文字をリテラルに保持したりできます。エスケープではバックスラッシュを使用して特殊文字をエスケープ シーケンスに変換しますが、アンエスケープではバッククォートを使用してエスケープ シーケンスの元の値を復元します。これらの操作を理解することは、HTML タグを解析せずにプレーン テキストにエスケープするなど、特殊文字を含むテキストを操作する場合に重要です。

MyBatis のエスケープ文字以下の秘密を解読する MyBatis のエスケープ文字以下の秘密を解読する Feb 21, 2024 pm 10:06 PM

タイトル: MyBatis の Less Than or Equal エスケープ文字の謎を解読する MyBatis をデータベース操作に使用する場合、特定の値以下の値をクエリする必要がある状況によく遭遇します。 SQL ステートメントでは、以下の条件には通常「」が使用されます。

HTML 特殊文字をエスケープするための PHP の htmlspecialchars() 関数を理解する HTML 特殊文字をエスケープするための PHP の htmlspecialchars() 関数を理解する Nov 18, 2023 pm 04:19 PM

PHP の htmlspecialchars() 関数は、HTML 特殊文字をエスケープするために使用されます。PHP の htmlspecialchars() 関数は、HTML 特殊文字を対応するエンティティに変換するためによく使用される文字列処理関数です。この目的は、HTML ページの構文エラーやセキュリティ ホールを回避し、ユーザーが入力したデータがページ上に正しく表示されるようにすることです。多くの場合、ユーザーが入力したデータを HTML コードとして扱う必要があります。

Golang での文字列エスケープに関するヒントと注意事項 Golang での文字列エスケープに関するヒントと注意事項 Feb 23, 2024 pm 03:03 PM

Golang では通常の文字列代入以外にも文字列をエスケープする方法が多数あり、それぞれに適用可能なシナリオや注意事項が異なります。この記事では、Golang で文字列をエスケープする手法と注意事項を紹介し、具体的なコード例を示して、読者がこれらの手法をよりよく理解して適用できるようにしたいと考えています。 Golang では、文字列は二重引用符 ("") またはバックティック (``) を使用して表現できます。エスケープ文字は、二重引用符で表された文字列内で使用して、改行などの特殊文字を表すことができます。

See all articles