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

テキスト処理文字列

 閲覧数:1913  投稿日: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
2025/3/11 2:25 更新
週間人気ページランキング / 3-4 → 3-10
順位 ページタイトル抜粋 アクセス数
1 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 9
2 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 8
3 指定文字列より前を取得 | 文字列(テキスト処理) 5
3 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 5
4 現在WebページのURLパスを第2階層まで取得 | パス 4
4 8桁の生年月日数字を分解 | 文字列(テキスト処理) 4
4 多次元配列の作成 | 多次元配列(型) 4
5 URLから、トップページ(index.html)判定 | ルーティング 3
6 配列の要素に特定の値が存在すれば、要素のキーを返す array_search() | 配列(型) 2
6 24時間以降の時刻を表示 / "02:30" → "26:30" | 日付および時刻関連 2
6 (データベースなどから取得した)多次元配列の値と、一次元配列を比較して、「一致」及び「増減」を返す | 配列(型) 2
6 「指定文字」直後から「指定文字」直前までの文字列を返す | マルチバイト文字列(テキスト処理) 2
7 Smartyのテンプレートにincludeしたファイルを表示 | Smarty(テンプレートエンジン) 1
7 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する | 文字列(テキスト処理) 1
7 null代入とunset()の違い | 変数 1
7 特定のHTMLタグのみ表示を許可 | エスケープ処理 1
7 平均値、分散、標準偏差を求める | 統計 1
7 アルファベット小文字に続けて大文字表示 | 文字列(テキスト処理) 1
7 range( ) を使用して日付期間を配列生成 | 日付および時刻関連 1
7 unset | タグ毎エントリー一覧 1
2025/3/11 1:02 更新