例えば、下記のようなデータから文字の一部を切り抜く方法です。
a:5:{i:1;s:4:"like";i:2069;s:4:"like";i:1177;s:4:"like";i:1173;s:4:"like";i:1011;s:4:"like";}
a:の部分を削除する(str_replace)
頭の「a:」部分を削除したいと思った時は、方法はいくつかあるかと思いますが、str_replaceという方法を使って消すことができます。
例えば、今回の削除したい冒頭の文字が変数$resultに入っているとした場合に、変換をしてみます。
str_replace — 検索文字列に一致したすべての文字列を置換する
$new_str = str_replace('a:', '', $result);
echo $new_str;
すると、変数内で「a:」という文字が入っている部分が削除されました!
5:{i:1;s:4:"like";i:2069;s:4:"like";i:1177;s:4:"like";i:1173;s:4:"like";i:1011;s:4:"like";}
この関数は、subject の中の search を全て replace に置換します。
https://www.php.net/manual/ja/function.str-replace.php
特定の文字以降を削除する(strstr)
次に、特定の文字以降の文字を削除してみます。
[rml_read_more]
$new_str2 = strstr($new_str,':{',true);
echo $new_str2;
strstr — 文字列が最初に現れる位置を見つける
説明
https://www.php.net/manual/ja/function.strstr.php
strstr(string $haystack, string $needle, bool $before_needle = false): string|false
haystack の中で needle が最初に現れる場所を含めてそこから文字列の終わりまでを返します。
まとめ
このような感じで、文字列から、指定した文字の前後を削除することができました!
このような感じで、特定の文字だけ削除することができます。
おさらい▼
$new_str = str_replace('a:', '', $result);
echo $new_str;
$new_str2 = strstr($new_str,':{',true);
echo $new_str2;
strstrは、引数をfalseにしてみると、一致した文字から左側が消えました。
$new_str2 = strstr( $value[0],':{',false);
echo $new_str2;
このような感じで色々と削除できました。ご参考ください😃