LoginSignup
1
0

More than 3 years have passed since last update.

ビルトイン関数(文字列を扱う関数)

Last updated at Posted at 2021-02-03

文字列に関するビルトイン関数についてです。
strlen() 関数を使用することで文字列の文字数を得ることができます。

main.php
<?php
$input = ' hoge_hoge  ';
echo strlen($input) . PHP_EOL;
ターミナル
~ $ php main.php
12

$input = ' hoge_hoge ';が空白含め12文字あることがわかります。
しかし、空白や改行を除去した文字数を得たい場合には trim() 関数を使えば、前後の空白や改行を除去することができます。

main.php
<?php
$input = ' hoge_hoge  ';
$input = trim($input);

echo strlen($input) . PHP_EOL;
ターミナル
~ $ php main.php
9

次に文字列の検索を行います。
strpos() の関数を使用し、文字列の中に _ があるかどうか調べます。

main.php
<?php
$input = ' hoge_hoge  ';
$input = trim($input);

echo strpos($input, '_') . PHP_EOL;
ターミナル
~ $ php main.php
4

最初に _ が見つかった位置を教えてくれますが、位置は0から始まりますので、出力は4文字目になります。

次に置換をしていきます。文字列の _ を - に置き換えます。
この時に使用するのが str_replace()を使用します。
str_replace('置換前', '置換後', どこの文字列か)という記述をします。

main.php
$input = ' hoge_hoge  ';
$input = trim($input);

$input = str_replace('_', '-', $input);
echo $input . PHP_EOL;
ターミナル
~ $ php main.php
hoge-hoge

文字列が日本語の場合は注意が必要

main.php
<?php

$input = ' こんにちは  ';
$input = trim($input);

echo mb_strlen($input) . PHP_EOL;
echo mb_strpos($input, 'に') . PHP_EOL;

$input = str_replace('にち', 'ばん', $input); 
echo $input . PHP_EOL;
ターミナル
~ $ php main.php
5
2
こんばんは

strlen() や strpos() で日本語を扱うにはマルチバイトに対応した別の関数を使う必要があります。
mb_strlen(), mb_strpos() を使います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0