ホームページ  >  記事  >  バックエンド開発  >  PHPに文字列を分割するよう依頼する

PHPに文字列を分割するよう依頼する

WBOY
WBOYオリジナル
2016-06-23 13:31:11974ブラウズ

先輩方、こんにちは

問題が発生しました、

文字列:

[2015/07/07 00:00:00] test001 405433AH 127.0.0.1 開始
この文字列を配列に分割したいです
理想的な結果:
配列( [0] =>[2015/07/07 00:00:00] [1] =>test001 [2]=>405433AH [3]=>127.0.0.1 [4]= >開始 )

この文字列をどのように分割すればよいでしょうか?
爆発を使用しようとしましたが、分割できませんでした。

先輩方からアドバイスをお願いします。
ありがとうございます。


ディスカッションへの返信(解決策)

$s = '[2015/07/07 00:00:00]	test001	405433AH	127.0.0.1	Start';$a = sscanf($s, "[%s %8s]\t%s\t%s\t%s\t%s");print_r($a);
Array(    [0] => 2015/07/07    [1] => 00:00:00    [2] => test001    [3] => 405433AH    [4] => 127.0.0.1    [5] => Start)
は完全に一致しているわけではありませんが、妥当です

先輩、ありがとうございます
質問させてください

%s は文字列を表します
それで、 %8s?

% 8s は、キャラクターを 8 つ獲得したら終了するという意味です

explode を使用することもできますが、少し面倒です。

$str = '[2015/07/07 00:00:00]   test001 405433AH    127.0.0.1   Start';$arr = explode(' ', preg_replace('/[ ]{2,}/', ' ', $str));$arr[1] = $arr[0].' '.$arr[1];unset($arr[0]);$arr = array_values($arr);print_r($arr);



Array
(
[0] => [2015/07/07 00:00:00]
[1] => test001
[2] =>405433 AH
[3] => ; 127.0.0.1
[4] => 開始
)

二人の先輩、ありがとう

問題は解決しました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。