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

テキスト処理文字列

 閲覧数:1519  投稿日: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/4/26 13:27 更新
週間人気ページランキング / 4-19 → 4-25
順位 ページタイトル抜粋 アクセス数
1 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 15
2 URLから、トップページ(index.html)判定 | ルーティング 9
3 現在WebページのURLパスを第2階層まで取得 | パス 8
4 配列の空要素を削除 / array_diff()で空配列と比較し配列の差分を返す | 配列(型) 7
5 多次元配列キーを、多次元配列内にある「特定キーの値」へ変更 | 多次元配列(型) 6
5 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 6
6 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する | 文字列(テキスト処理) 5
7 「input type="datetime-local"」で受け取った文字列をハイフンへ変更 | 日付および時刻関連 4
8 配列内容を、foreachでテーブル表示 | テーブル 3
8 日付表示(フォーマット指定) | 日付および時刻関連 3
8 指定文字列より前を取得 | 文字列(テキスト処理) 3
8 可変変数(変数) カテゴリー 3
8 文字列の中で変数展開される要件 | 文字列(テキスト処理) 3
9 PHPコード 2
9 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 | 文字列(テキスト処理) 2
9 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 2
9 switch文判定 … 「in_array」「array_keys」 | 配列(型) 2
9 (データベースなどから取得した)多次元配列の値と、一次元配列を比較して、「一致」及び「増減」を返す | 配列(型) 2
10 インスタンスオブジェクト経由で、メンバ(プロパティ・メソッド)へアクセス … PHP5 | クラス 1
10 stdClassで、指摘キー毎の数をカウント後、新たなキー「count」として追加 / array_count_values(array_column()) | ビルトインクラス(クラス) 1
2024/4/26 1:02 更新