対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する

テキスト処理文字列

 閲覧数:1576  投稿日:2020-04-13  更新日:2020-04-13  

対象文字列の内、「最初の。以前」と「それ以降の文字列」を取得する
※「最初の。」は何れにも含めない


strstr($targetStr,'。',true);
・第3引数をTRUE にすると、「第1引数で指定した対象文字列」の中で、「第2引数で指定した最初の指定文字」があらわれる箇所より前の部分を返す
・その際、返り値には、「第2引数で指定した指定文字」を含まなない
・また、第2引数で指定した指定文字 が、第1引数で指定した対象文字列 に含まれていない場合は、bool(false) を返す

考え方
・1.対象文字列から、「最初の。以前」を取得する
・2.対象文字列から、「上記取得文字列+。」を削除すると、「それ以降の文字列」を取得できる


コード

//対象文字列 例1
$targetStr = 'あいうえお
かきくけこ

さしすせそ。

たちつてと。

なにぬねの。

はひふへほ
▽まみむめも
▽やゆよ。

らりるれろ、';

$strLead = strstr($targetStr,'。',true); //第3引数をTRUE にすると、strstr() の返り値は、第1引数で指定した対象文字列の の中で、第2引数で指定した最初の指定文字 があらわれる箇所より前の部分となる(第2引数で指定した最初の指定文字) は含まなない
if($strLead):
  $strText = str_replace($strLead.'。','',$targetStr);
endif;

var_dump($strLead);
var_dump($strText);



//対象文字列 例2
$targetStr2 = 'あいうえお
かきくけこ

さしすせそ';

$strLead2 = strstr($targetStr2,'。',true); //第3引数をTRUE にすると、strstr() の返り値は、第1引数で指定した対象文字列の の中で、第2引数で指定した最初の指定文字 があらわれる箇所より前の部分となる(第2引数で指定した最初の指定文字) は含まなない
if($strLead2):
  $strText2 = str_replace($strLead.'。','',$targetStr2);
endif;

var_dump($strLead2); //bool(false)
var_dump($strText2); //NULL



結果

string(51) "あいうえお
かきくけこ

さしすせそ"



string(122) "

たちつてと。

なにぬねの。

はひふへほ
▽まみむめも
▽やゆよ。

らりるれろ、"



bool(false)



NULL



タグ


strstr 



指定文字列より前を取得

対象文字列を、文字数に応じて半分に分割後、それぞれを取得



類似度ページランキング
順位 ページタイトル抜粋
1 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する 69
2 「1文字目」から「最初の指定文字」前までの文字列を取得 44
3 指定文字が2回目に出現する位置以降の文字列を取得 43
4 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す 42
5 「最後に位置している指定文字列」より後の文字列を取得 42
6 指定文字列より前を取得 38
7 PHPで最後の「指定区切り文字」より後ろを取得 37
8 文字数に基づき、文字列の一部を取得する 36
9 指定した幅で文字列を丸めた後、「…」文字を追加する 36
10 「対象文字列」に「指定文字列」が含まれていれば、「指定文字列」より後を返す 36
11 「指定文字」直後から「指定文字」直前までの文字列を返す 35
12 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 34
13 「指定文字」から「指定文字」までの文字列を返す 34
14 「{ }」も「.」も使用せず、文字列の中で変数を展開する 31
15 日付(文字列)から、指定時刻のUNIXタイムスタンプを取得 31
16 「指定文字」から「指定文字」までの文字列を削除 31
17 文字列に含まれるすべての半角空白と全角空白を削除 30
18 複数の指定文字列を削除 30
19 本日が「指定日当日」「指定日以前」「指定日以降」何れであるかを判定 29
20 投稿日時をTwitterのように「 29
2024/6/22 6:09 更新
週間人気ページランキング / 6-15 → 6-21
順位 ページタイトル抜粋 アクセス数
1 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 9
1 URLから、トップページ(index.html)判定 | ルーティング 9
2 現在WebページのURLパスを第2階層まで取得 | パス 7
3 指定文字が2回目に出現する位置以降の文字列を取得 | 文字列(テキスト処理) 5
3 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 5
4 null代入とunset()の違い | 変数 4
5 指定文字列より前を取得 | 文字列(テキスト処理) 3
5 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 3
5 相関係数 | 統計 3
6 range( ) を使用して日付期間を配列生成 | 日付および時刻関連 2
6 dateとgmdateの比較 | 日付および時刻関連 2
6 「input type="datetime-local"」で受け取った文字列をハイフンへ変更 | 日付および時刻関連 2
7 constant | タグ毎エントリー一覧 1
7 配列の空要素を削除 / array_diff()で空配列と比較し配列の差分を返す | 配列(型) 1
7 n | タグ毎エントリー一覧 1
7 switch文判定 … 「in_array」「array_keys」 | 配列(型) 1
7 文字列を「複数の区切り文字」で配列へ変換 / preg_split使用案。採用 | 文字列(テキスト処理) 1
7 8桁の生年月日数字を分解 | 文字列(テキスト処理) 1
7 クロスサイトスクリプティング対策(配列対応) | エスケープ処理 1
7 多次元配列の「一次元要素数」もしくは「全次元要素数」をカウント | 多次元配列(型) 1
2024/6/22 1:01 更新