PHP は、Web 開発やデータ処理に広く使用されている人気のあるサーバーサイド プログラミング言語であり、豊富な組み込み関数と機能が備わっています。ユーザー入力を処理したり、外部ソースからデータを取得したりする場合、多くの場合、計算や比較操作のために文字列を数値に変換する必要があります。この記事では、型変換関数や文字列操作関数、正規表現など、PHPの文字列を数値に変換する方法やテクニックを紹介します。はじめましょう!
PHP には、さまざまな型の値を数値型に変換するための組み込みの型変換関数がいくつか用意されています。これらの関数は、整数、浮動小数点数、ブール値、日時などのさまざまなデータ型を処理できます。一般的に使用される型変換関数の一部を次に示します。
(1) intval() 関数
intval() 関数は、文字列を整数に変換するために使用されます。文字列が数字で始まる場合、関数はそれを整数型に変換し、文字列が数字以外の文字で始まる場合、関数は 0 を返します。 intval() 関数では、基数を指定したり、小数部分を四捨五入したりすることもできます。
例:
$str = '123'; $int = intval($str); // $int的值为123 $str = 'abc123'; $int = intval($str); // $int的值为0 $str = '123.45'; $int = intval($str); // $int的值为123 $str = '0x1a'; $int = intval($str, 16); // $int的值为26
(2) floatval() 関数
floatval() 関数は、文字列を浮動小数点数に変換するために使用されます。 intval() 関数と同様に、文字列が数値で始まる場合、関数はそれを浮動小数点数型に変換します。文字列が数値以外の文字で始まる場合、関数は 0 を返します。
例:
$str = '3.14'; $float = floatval($str); // $float的值为3.14 $str = 'abc.123'; $float = floatval($str); // $float的值为0
(3) boolval() 関数
boolval() 関数は、文字列をブール値に変換するために使用されます。文字列が '0'、''、'false'、'null'、または空の配列の場合、関数は false を返し、それ以外の場合は true を返します。 boolval() 関数は、他のタイプの値をブール値に変換することもできます。
例:
$str1 = '0'; $str2 = 'false'; $str3 = 'null'; $bool1 = boolval($str1); // $bool1的值为false $bool2 = boolval($str2); // $bool2的值为false $bool3 = boolval($str3); // $bool3的值为false $str4 = 'abc'; $bool4 = boolval($str4); // $bool4的值为true $int = 123; $bool5 = boolval($int); // $bool5的值为true
(4) strtotime() 関数
strtotime() 関数は、日付と時刻の文字列を Unix タイムスタンプに変換するために使用されます。 Unix タイムスタンプは、1970 年 1 月 1 日の 0:00:00 から現在時刻までの秒数です。関数のパラメーターには、「2019-01-01」、「2020-01-01 12:00:00」など、任意の形式の日付と時刻の文字列を指定できます。文字列が日時形式として認識されない場合、関数は false を返します。
例:
$str = '2020-01-01 12:00:00'; $timestamp = strtotime($str); // $timestamp的值为1577875200
型変換関数に加えて、PHP は数値を処理するための多くの文字列操作関数も提供します。文字列の一部。これらの関数は、文字列の数値以外の部分の削除、指定された長さの数値のインターセプト、文字列が数値かどうかの判断などの機能を実装できます。一般的に使用される文字列操作関数の一部を次に示します。
(1) preg_replace() 関数
preg_replace() 関数は、PHP の正規表現に基づく文字列置換関数であり、次の目的で使用できます。削除 文字列の数値以外の部分。正規表現を使用すると、数値以外の文字をすべて照合し、何も置き換えることができます。
例:
$str = 'abc123xyz456'; $str = preg_replace('/\D/', '', $str); // $str的值为'123456'
正規表現では、「\D」は数字以外の文字を表し、「/」を追加することはそれらをエスケープすることを意味します。 preg_replace() 関数と正規表現を使用して、数値以外の文字を空の文字列に置換し、数値のみを含む文字列を取得します。
(2) substr() 関数
substr() 関数は、文字列内の指定された位置および長さの部分文字列をインターセプトするために使用されます。この関数を使用して文字列の数値部分をインターセプトし、型変換を実行できます。
例:
$str = 'abc123xyz'; $str = substr($str, 3, 3); // $str的值为'123' $int = intval($str); // $int的值为123
(3) is_numeric() 関数
is_numeric() 関数は、文字列が数値かどうかを判断するために使用されます。この関数は、文字列が整数、浮動小数点数、科学表記法の数値の場合は true を返し、それ以外の場合は false を返します。
例:
$str1 = '123'; $str2 = '3.14'; $str3 = '1e10'; $str4 = 'abc'; $bool1 = is_numeric($str1); // $bool1的值为true $bool2 = is_numeric($str2); // $bool2的值为true $bool3 = is_numeric($str3); // $bool3的值为true $bool4 = is_numeric($str4); // $bool4的值为false
正規表現は、さまざまな A 文字列の処理に使用できる、柔軟で強力なテキスト マッチング ツールです。形式で。 PHP には、Perl 互換の正規表現構文をサポートする組み込みの PCRE ライブラリがあります。正規表現を使用して文字列の数値部分を照合し、型変換を実行できます。
例:
$str1 = 'abc123xyz'; $str2 = '3.14E2'; $pattern = '/\d+/'; preg_match($pattern, $str1, $matches); // $matches的值为array('123') preg_match($pattern, $str2, $matches); // $matches的值为array('314') $int1 = intval($matches[0]); // $int1的值为123 $float1 = floatval($matches[0]); // $float1的值为123.0 $float2 = floatval($matches[0]) * 100; // $float2的值为12300.0
正規表現では、「\d」は数字を表し、「 」は 1 つ以上の数字と一致することを表します。 preg_match() 関数と正規表現を使用して文字列の数値部分を照合し、照合結果を $matches 配列に保存し、次に intval() 関数と floatval() 関数を使用して照合結果を整数に変換し、浮動小数点数型。さらに、100 を乗算して浮動小数点数を取得するなど、照合結果をさらに処理することもできます。
概要
この記事では、型変換関数、文字列操作関数、正規表現など、PHP の文字列を数値に変換する方法とテクニックを紹介します。これらのメソッドは、整数、浮動小数点、ブール値、日時などのさまざまなタイプの文字列を簡単に処理できます。最後に、正規表現を使用して文字列の数値部分を照合し、型変換を実行する方法も紹介しました。これらのスキルを習得すると、PHP プログラミング プロセスがより快適になり、開発効率が向上します。
以上がPHPの文字列を数値に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。