すべてのスペースでテキストメッセージを配列に分割したいと思います。このテキストメッセージを受信するまでは問題なく動作しています。テキスト文字列を処理するいくつかのコード行は次のとおりです。
$str = 'T bw4 05/09/19 07:51 am BW6N 499.803';
$cleanStr = iconv("UTF-8", "ISO-8859-1", $str);
$strArr = preg_split('/[\s\t]/', $cleanStr);
var_dump($strArr);
Var_dumpは次の結果をもたらします。
array:6 [▼
0 => "T"
1 => b"bw4 05/09/19"
2 => "07:51"
3 => "am"
4 => "BW6N"
5 => "499.803"
]
配列 "1 => b" bw4 05/09/19 ""の#1項目が正しくないため、配列値の前にある文字 "b"がわかりません。また、「bw4」と「05/09/19」の間のスペース文字列分割をより適切に実現する方法についての提案は大歓迎です。これが元の文字列です:https://3v4l.org/2L35Mそしてこれが私のローカルホストからの結果の画像です:http://prntscr.com/jjbvny
使用できる1つ以上のUnicode空白文字と一致させるには
'~\s+~u'
あなたの'/[\s\t]/'
パターンは、単一の空白文字(一致する\s
)またはタブを(\t
)(として当然の冗長である\s
、すでにあまりにも、タブにマッチする)が、以来、u
修飾子が欠落している、\s
一致させることはできません\ u00A0文字(ハードスペース)を、あなたは後に持っていますbw4
。
だから、使用する
$str = 'T bw4 05/09/19 07:51 am BW6N 499.803';
$strArr = preg_split('/\s+/u', $str);
print_r($strArr);
PHPのデモをご覧ください
Array
(
[0] => T
[1] => bw4
[2] => 05/09/19
[3] => 07:51
[4] => am
[5] => BW6N
[6] => 499.803
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加