PHP:提取特定内容以将变量与字符串中的文本块分开

时间:2012-12-26 05:28:16

标签: php

我有一个名为$ driveusage的变量,它包含以下文本块:

Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs    111G  8.7G   96G   9% /
/dev/sda1      ext3      111G  8.7G   96G   9% /
devtmpfs       devtmpfs   59M     0   59M   0% /dev
tmpfs          tmpfs      61M     0   61M   0% /dev/shm
tmpfs          tmpfs      61M  264K   60M   1% /run
tmpfs          tmpfs      61M     0   61M   0% /sys/fs/cgroup
tmpfs          tmpfs      61M   16K   61M   1% /tmp

我需要仅从rootfs行提取数据到单独的变量(即$drivesize$driveused$drivefree,而不是数组),只需sizeusedavail数字,仅限数字(包含小数)。
请注意,used值一旦超过9.9G,就会显示为10G没有小数点),当有效值低于{{ {1}}将显示为10G

我已经尝试了9.9G的每个组合,但我对这些复杂的表达方式并不满意。 :(

非常感谢您提供的任何帮助:)

1 个答案:

答案 0 :(得分:1)

这是我得到的:

$df_info = explode(' ', shell_exec("df -H / | tail -1 | tr -s ' ' | cut -d ' ' -f 2,3,4"));
$df = array(
    'size'      => $df_info[0],
    'used'      => $df_info[1],
    'available' => $df_info[2],
);

df -H /获取有关您的磁盘的人类可读信息,tail -1获取最后一行(重要数据,tr -s ' ' | cut -d ' ' -f 2,3,4获取第二,第三和第四个条目(“在该行中大小“,”使用“和”有效“。