addcslashes

関数の概要

PHPの addcslashes 関数は、指定した文字列内の特定の文字に対してバックスラッシュ()を付加します。特に、文字や文字範囲を指定してエスケープ処理を行いたい場合に便利です。主に正規表現の特殊文字やシェルコマンドなどで問題となる文字をエスケープする際に使われます。

パラメータの説明

  • string $str:バックスラッシュを追加したい元の文字列。
  • string $charlist:バックスラッシュを付加したい文字または文字の範囲を指定する文字列。例えば、A..Z のように範囲指定も可能です。

戻り値

指定した文字にバックスラッシュが付加された新しい文字列を返します。元の文字列は変更されません。

使用例

基本的な使い方

<?php
$text = "Hello World!";
$result = addcslashes($text, "W");
echo $result;  // Hello World!
?>

上記の例では、文字列中の「W」にバックスラッシュが付き、「Hello World!」が出力されます。

文字範囲の指定

<?php
$text = "abcXYZ123";
$result = addcslashes($text, 'a..z');
echo $result;  // abcXYZ123
?>

ここでは、小文字の a から z の範囲が指定されています。小文字のアルファベットだけにバックスラッシュが付加されます。

特殊文字のエスケープ

<?php
$text = "Price is $100.";
$result = addcslashes($text, '$.');
echo $result;  // Price is $100.
?>

文字「$」と「.」をエスケープしたい場合に有用です。Shellや正規表現でトラブルを避けたい際に便利です。

関連する関数

  • addslashes:シングルクォート、ダブルクォート、バックスラッシュ、NULL文字に対してエスケープを行う
  • stripslashes:エスケープされたバックスラッシュを取り除く
  • quotemeta:正規表現の特殊文字をエスケープ

まとめ

addcslashes は、指定した文字や文字範囲に対して簡単にバックスラッシュでのエスケープを付加できる便利な関数です。正規表現、シェルコマンドの安全対策や、特定の文字をエスケープしたい場合に活用できます。パラメータの charlist で細かく対象を指定できるため、用途に応じて使い分けると良いでしょう。