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

テキスト処理文字列

 閲覧数:1084  投稿日: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 「1文字目」から「最初の指定文字」前までの文字列を取得 44
2 指定文字が2回目に出現する位置以降の文字列を取得 43
3 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す 42
4 「最後に位置している指定文字列」より後の文字列を取得 42
5 指定文字列より前を取得 38
6 文字数に基づき、文字列の一部を取得する 36
7 指定した幅で文字列を丸めた後、「…」文字を追加する 36
8 「対象文字列」に「指定文字列」が含まれていれば、「指定文字列」より後を返す 36
9 「指定文字」直後から「指定文字」直前までの文字列を返す 35
10 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 34
11 「指定文字」から「指定文字」までの文字列を返す 34
12 「{ }」も「.」も使用せず、文字列の中で変数を展開する 31
13 日付(文字列)から、指定時刻のUNIXタイムスタンプを取得 31
14 「指定文字」から「指定文字」までの文字列を削除 31
15 複数の指定文字列を削除 30
16 本日が「指定日当日」「指定日以前」「指定日以降」何れであるかを判定 29
17 投稿日時をTwitterのように「 29
18 本日が「複数設定した指定日」の当日に該当するか、を判定 29
19 「二次元目の指定キーが指定値である、二次元目配列」を削除 28
20 「指定配列要素が配列内で重複している数」をカウント後、配列要素として追加 28
2023/3/27 19:54 更新
週間人気ページランキング / 3-20 → 3-26
順位 ページタイトル抜粋 アクセス数
1 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 33
2 「input type="datetime-local"」で受け取った文字列をハイフンへ変更 | 日付および時刻関連 15
3 URLから、トップページ(index.html)判定 | ルーティング 13
4 指定文字列より前を取得 | 文字列(テキスト処理) 12
5 現在WebページのURLパスを第2階層まで取得 | パス 11
6 null代入とunset()の違い | 変数 10
7 PHPコード 8
8 平均値、分散、標準偏差を求める | 統計 6
9 平均値、分散、標準偏差、学力偏差値を求める | 統計 4
9 foreachの中でswitch文 | 配列(型) 4
10 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 3
10 配列内容を、foreachでテーブル表示 | テーブル 3
10 マテリアルカラーをランダムに3色取得 / 重複なし | 色 3
10 Smartyのテンプレートにincludeしたファイルを表示 | Smarty(テンプレートエンジン) 3
10 URL抽出 | PCRE — 正規表現 (Perl 互換)(テキスト処理) 3
11 Noticeエラー回避 / PHP7以上で使用可能なnull合体演算子(??)を使用 | 演算子 2
11 ルーティング カテゴリー 2
11 2.7.1 アイテム間の類似度のデータセットを作る | 2章(集合知プログラミング) 2
11 全ての配列要素へ対して順番に処理を実施 | 配列(型) 2
11 8桁の生年月日数字から、年齢を計算 | 日付および時刻関連 2
2023/3/27 1:01 更新