[PHP-users 11379] Re: エスケープするという言葉の意味
HOTTA Michihide
php-users@php.gr.jp
Fri, 08 Nov 2002 23:51:25 +0900
堀田@諌早市%筋金入りの文系、です。
eizo wrote:
> pg_escape_string関数をPHPマニュアルで調べると「テキスト/文字型用
> の文字列をエスケープする 」とあるんですが、文系人間なものでこの
> 「エスケープする」という言葉の意味がわかりません。
たしかにあのマニュアルの説明では、前提知識がないとわかりにくい
ですね。
エスケープは「次の文字が持つ特殊な意味を打ち消す」の意味として
よく使われています。わからなければ、ためしてみればよいのです。
で、早速使ってみますと、
hotta@star ~$ cat a.php
<?php
printf("PHP version=%s\n", PHP_VERSION);
$a="1234567890-^\!\"#$%&'()~=~|";
printf("original=%s\n", $a);
printf("escaped =%s\n", pg_escape_string($a));
?>
hotta@star ~$ php -q a.php
PHP version=4.2.3
original=1234567890-^\!"#$%&'()~=~|
<br />
<b>Fatal error</b>: Call to undefined function: pg_escape_string()
in <b>/home/hotta/a.php</b> on line <b>5</b><br />
む?(汗)
マニュアルには (PHP 4 >= 4.2.0) とか書いているのですが、新しめの
やつでないダメなのかも。4.3.0 系だと使えました。マニュアルのバグ?
hotta@star ~$ ./rpm/BUILD/php4-200211030600/sapi/cgi/php-cgi -q a.php
PHP version=4.3.0-dev
original=1234567890-^\!"#$%&'()~=~|
escaped =1234567890-^\\!"#$%&''()~=~|
何がどう変わったのか、そしてそれらの意味を考えてみてください。
# 私も何かわからないことがある時、すぐ
# 「ふん、どうせオレは文系さ」とうそぶきがちなのですが、
# きしだくんに怒られそうなので、今後はやめておきます:-)
--
堀田 倫英 <hotta@net-newbie.com> <http://www.net-newbie.com>