1

PHPを使用して、特定の各テキストに独自の変数を与えようとしています。これは、phpのリストの分解機能を使用することで実現できると思います。以下のコードに似たもの:

list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);

ただし、上記のコードはコロン(:)を使用してテキストを区切ります。区切りたいテキストは、たとえば引用符で囲みます"WORD"。分離したいテキストの例は次のとおりです。

"AULLAH1" "01/07/2010 15:28" "55621454" "123456" "123456.00"

テキスト/数字、、、、AULLAH1すべてに特定のPHP変数を持たせ01/07/2010 15:28たい55621454123456ですが。123456.00可能であれば、PHPの分解機能で、コンテンツを最初の引用符( ")と最後の引用符(")で区切るようにします。

4

4 に答える 4

3

より良い方法は、以下を使用することpreg_match_allです。

$s = '"AULLAH1" "01/07/2010 15:28 " "55621454" "123456" "123456.00"';
preg_match_all('/"([^"]*)"/', $s, $matches);
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = $matches[1];

最も簡単な方法は、以下を使用することpreg_splitです。

list($user, $pass, $uid, $gid, $gecos, $home, $shell) =
    preg_split('/"(?: ")?/', $s, -1, PREG_SPLIT_NO_EMPTY);
于 2010-08-21T23:32:55.557 に答える
1

これは最も単純なソリューションですが、確かに最も堅牢ではありません。

$data = '"AULLAH1" "01/07/2010 15:28 " "55621454" "123456" "123456.00"';

list($user, $pass, $uid, $gid, $gecos, $home, $shell)
    = explode('" "', trim($data, '"'));

var_dump(array($user, $pass, $uid, $gid, $gecos, $home, $shell));

// gives:
array(7) {
  [0]=>
  string(7) "AULLAH1"
  [1]=>
  string(17) "01/07/2010 15:28 "
  [2]=>
  string(8) "55621454"
  [3]=>
  string(6) "123456"
  [4]=>
  string(9) "123456.00"
  [5]=>
  NULL
  [6]=>
  NULL
}
于 2010-08-21T23:33:25.380 に答える
1

これは正規表現で行う必要があります。これについては、 preg_match関数を参照してください。

于 2010-08-21T23:34:58.107 に答える
0
explode('-', str_replace('"', '', str_replace('" "', '"-"', $data)));
于 2010-08-21T23:35:17.483 に答える