PHPのお勉強!

PHP TOP

quotemeta

(PHP 4, PHP 5, PHP 7, PHP 8)

quotemetaメタ文字をクォートする

説明

quotemeta(string $string): string

文字列 str について、

. \ + * ? [ ^ ] ( $ )
の前にバックスラッシュ文字 (\) でクォートして返します。

パラメータ

string

入力文字列。

戻り値

メタ文字をクォートした文字列を返します。 空文字を string に渡した場合は false を返します。

例1 quotemeta() の例

<?php

var_dump
(quotemeta('PHP is a popular scripting language. Fast, flexible, and pragmatic.'));
?>

上の例の出力は以下となります。

string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."

注意

注意: この関数はバイナリデータに対応しています。

参考

  • addslashes() - 文字列をスラッシュでクォートする
  • addcslashes() - C 言語と同様にスラッシュで文字列をクォートする
  • htmlentities() - 適用可能な文字を全て HTML エンティティに変換する
  • htmlspecialchars() - 特殊文字を HTML エンティティに変換する
  • nl2br() - 改行文字の前に HTML の改行タグを挿入する
  • stripslashes() - クォートされた文字列のクォート部分を取り除く
  • stripcslashes() - addcslashes でクォートされた文字列をアンクォートする
  • preg_quote() - 正規表現文字をクオートする

add a note

User Contributed Notes 3 notes

up
15
kumarkulandai at gmail dot com
15 years ago
<?php
$str
= "Hello world. (can you hear me?)";
echo
quotemeta($str);
?>

The output of the code above will be:
Hello world\. \(can you hear me\?\)
up
10
George Adams
18 years ago
Took me a while to realize this was NOT the command I wanted for escaping potentially harmful characters in a string that would be used as part of a system command. Instead, I needed either escapeshellarg() (http://www.php.net/manual/en/function.escapeshellarg.php) or escapeshellcmd() (http://www.php.net/manual/en/function.escapeshellcmd.php)
up
5
Anonymous
23 years ago
This function escapes characters that have special meaning in regular expressions. preg_quote() <http://php.net/manual/en/function.preg-quote.php> has similar functionality, but is more powerful since it escapes more characters (including one user-specified character).