Dec
23
0
PHPのchr

`chr` 関数は、指定された ASCII コードに対応する文字を返す PHP の関数です。基本的には、整数値を ASCII 文字に変換するために使用されます。

基本構文は以下の通りです:

“`php
string chr(int $ascii)
“`

- `$ascii`: ASCII コード。0 から 255 の範囲の整数です。

以下に具体例を示します:

“`php
$ascii_code = 65; // ASCII コード 65 は大文字の 'A'

// ASCII コードを文字に変換
$character = chr($ascii_code);

echo $character;
?>
“`

この例では、`$ascii_code` に ASCII コードとしての整数値 65 を指定し、`chr` 関数を使ってそれを文字に変換しています。出力結果は次のようになります:

“`
A
“`

`chr` 関数は ASCII コードに対応する文字を返すだけでなく、UTF-8 や他のエンコーディングにおいても使用することができます。ただし、UTF-8 などのマルチバイトエンコーディングにおいては、 `mb_convert_encoding` などの関数を使用したり、エンコーディングに注意する必要があります。

Dec
23
0
PHPのbin2hex

`bin2hex` 関数は、バイナリデータを16進数の文字列に変換する PHP の関数です。基本的に、バイナリデータ(バイト列)を16進数文字列に変換するのに使用されます。

基本構文は以下の通りです:

string bin2hex(string $binary_data)

- `$binary_data`: 16進数文字列に変換したいバイナリデータ。

以下に具体例を示します:

<?php
$binary_data = "Hello, world!";

// バイナリデータを16進数文字列に変換
$hex_string = bin2hex($binary_data);

echo $hex_string;
?>

この例では、文字列 “Hello, world!” がバイナリデータとして `$binary_data` に格納され、それを `bin2hex` 関数を使って16進数文字列に変換しています。出力結果は以下のようになります:

“`
48656c6c6f2c20776f726c6421
“`

このような変換は、特にバイナリデータをテキスト形式で表示する場合などに使用されます。逆の変換(16進数文字列をバイナリデータに変換)を行う場合は、`hex2bin` 関数を使用します。

Dec
23
0
PHPのaddcslashes()

`addcslashes` 関数は、指定された文字列に対して指定されたエスケープ文字を追加する PHP 関数です。主に文字列をエスケープして、例えば特定の文字や文字クラスをエスケープするために使用されます。

基本構文は以下の通りです:

string addcslashes(string $str, string $charlist)

- `$str`: エスケープする対象の文字列。
- `$charlist`: エスケープする文字または文字の範囲を指定する文字列。例えば、`”..37”` のように指定します。

ここで、`$charlist` で指定した範囲の文字に対して、エスケープが行われます。エスケープされる文字は “ で始まります。

以下に具体例を示します:

<?php
$str = "Hello, world! This is a test string.";

// 文字列中の 'a' と 'e' をエスケープ
$escaped_str = addcslashes($str, 'ae');

echo $escaped_str;
?>

この例では、`$str` 中の ‘a’ と ‘e’ がエスケープされ、出力結果は `”Hello, world! This is a test string.”` となります。

ただし、この関数は特定の用途でしか使いません。例えば、SQLインジェクションの防止などには `addcslashes` を使用するよりも、適切なエスケープ関数(例えば、PDOのプリペアドステートメントやエスケープ関数)を使用することが推奨されます。

Dec
23
0
PHPのsprintfの使い方

`sprintf` 関数は、指定されたフォーマットに従って文字列を生成します。主に変数を埋め込んだり、文字列のフォーマットを整えたりする際に利用されます。以下に `sprintf` の基本的な使い方を示します。

<?php
// 基本的な使い方
$name = "John";
$age = 25;

// %s は文字列、%d は整数を表します
$result = sprintf("My name is %s and I am %d years old.", $name, $age);

echo $result;
?>

上記の例では、`sprintf` のフォーマット文字列内の `%s` は文字列、`%d` は整数を表します。`$name` と `$age` の値がそれぞれ対応する位置に挿入され、最終的な文字列が生成されます。

`sprintf` では他にも多くのフォーマット指定子が利用できます。以下に一部を挙げてみます:

- `%s`: 文字列
- `%d`: 符号付き10進整数
- `%f`: 浮動小数点数
- `%b`: 2進数
- `%o`: 8進数
- `%x` または `%X`: 16進数(小文字または大文字)

さらに、フォーマット文字列には `%` で始まるプレースホルダー以外の文字も含めることができます。

<?php
$amount = 123.45;

// 金額をドル表示にフォーマット
$formatted_amount = sprintf("Total amount: $%.2f", $amount);

echo $formatted_amount;
?>

この例では `%f` フォーマット指定子を使用して、浮動小数点数を2桁の小数点以下まで表示する方法を示しています。

`sprintf` の結果は新しい文字列を生成するだけで、元の変数には影響を与えません。生成された文字列を利用したい場合は、別の変数に代入するか、直接 `echo` や他の関数で利用します。

Dec
23
0
PHPのechoやprintの使い方

`echo` と `print` はともにPHPで出力を行うための構文ですが、いくつかの違いがあります。

### `echo` の使い方:

<?php
// 文字列を直接出力する
echo "Hello, World!";

// 複数の引数をカンマで区切って出力する
echo "This", " is", " a", " sentence.";

// 変数の値を出力する
$name = "John";
echo "My name is " . $name;
?>

### `print` の使い方:

<?php
// 文字列を直接出力する
print "Hello, World!";

// 複数の引数をサポートしていないので、変数を結合して出力する
$name = "John";
print "My name is " . $name;
?>

主な違いは以下の通りです:

1. **返り値:**
- `echo` は複数の引数を取り、何も返しません。`echo`は単なる言語構造であり、関数ではありません。
- `print` は単一の引数を取り、成功した場合に `1` を、失敗した場合に `0` を返します。このため、`print`は関数として動作します。

2. **カンマで区切った引数:**
- `echo` はカンマで区切った複数の引数を受け付けます。複数の引数が渡された場合、それらを順に出力します。
- `print` は複数の引数をサポートしておらず、1つの引数しか受け付けません。複数の引数を渡すとエラーが発生します。

一般的には、`echo`が広く使われており、簡潔で柔軟性があります。`print`は単一の引数の場合に利用されることがありますが、通常はあまり使用されません。