如何从这个函数中获取某个文本?

时间:2017-05-30 07:33:11

标签: php

我想知道如何从Physical Address. . . . . . . . . : xx-xx-xx-xx-xx-xx获取文字$cmd = system('ipconfig /all')

当我写$ cmd = system('ipconfig /all')时,我的屏幕上会显示一个文字。即使没有回应$cmd。如何删除文本但文本的某些部分。我想在文字38 chars

之后获得Physical Address

注意:更重要的是要删除system('ipconfig /all')的显示文本但仍包含在变量中

4 个答案:

答案 0 :(得分:0)

除了穆罕默德的答案,你还可以使用输出缓冲。

类似的东西:

 ob_start();
 system('ipconfig /all');

 $output = ob_get_clean();

 print_r( $output);

应捕获从命令返回的所有内容。然后,您可以将其作为字符串进行操作。

答案 1 :(得分:0)

您可以将第二个参数发送到system函数以获取命令输出:

system('ipconfig /all', $output); //$output is result of command 

此外,您可以使用shell_exec功能仅返回输出而不是默认回声,如下所示:

$output = shell_exec('ipconfig /all'); 

答案 2 :(得分:0)

$val = shell_exec('ipconfig /all'); echo $val;

答案 3 :(得分:0)

你需要测试一下,因为我不确切知道你的IPCONFIG结果(从操作系统到操作系统不同),但这里非常接近你想要的:

<?php
$command = "ipconfig /all";
$output = shell_exec($command);
$output = explode(PHP_EOL, $output);
$output = $output[0];
$result = explode("Physical Address",$output);
echo substr($result[1],20,17);
?>

请注意,您可能需要更改echo substr($result[1],20,15);以满足您的需求,因为这取决于您拥有的网卡数量等。