1

我正在尝试使用 split、preg_split 或 explode 将以下数据解析为一个数组,以便我可以轻松地打印和修改数据:

28782188    /var/opt

当我跑

print_r(preg_split('/ /', $input));

我得到的只是

Array ( [0] => 28782796 /var/opt )

有没有办法让 php 与我从 du 调用中得到的空格分开?

4

4 回答 4

4

我想你想要

preg_split('/\s+/',$input);

如果我没记错的话,用任何空格字符分隔 - du 用制表符( \t) 分隔,尽管不要引用我的话......

编辑将正则表达式更改为有效的...

于 2011-08-30T15:21:05.630 回答
1
<?php 
  $value = '28782188 /var/opt';
  $values = array();

  //du might separate size and directory with **multiple** space/tabs
  preg_match_all('/\w*\S[\w\/]*/', $value, $values, PREG_PATTERN_ORDER);

  print_r($values);
  // outputs: Array ( [0] => '28782188', [1] => '/var/opt' )
?>
于 2011-08-30T15:21:23.733 回答
0

尝试print_r(explode(' ', $input));通过空格中断输入。

于 2011-08-30T15:20:12.047 回答
0

只需使用爆炸...

print_r(explode(' ', $input));
于 2011-08-30T15:20:14.470 回答