InfinityQuest - Programming Code Tutorials and Examples with Python, C++, Java, PHP, C#, JavaScript, Swift and more

Menu
  • Home
  • Sitemap

Python Programming Language Best Tutorials and Code Examples

Learn Python Right Now!
Home
PHP
Reading Standard Output from a Program in PHP
PHP

Reading Standard Output from a Program in PHP

InfinityCoder December 26, 2016

You want to read the output from a program. For example, you want the output of a system utility, such as route(8), that provides network information.

To read the entire contents of a program’s output, use the backtick (`) operator:

1
$routing_table = `/sbin/route`;

To read the output incrementally, open a pipe with popen():

1
2
3
4
5
$ph = popen('/sbin/route','r') or die($php_errormsg);
while (! feof($ph)) {
   $s = fgets($ph)             or die($php_errormsg);
}
pclose($ph)                    or die($php_errormsg);

The backtick operator executes a program and returns all its output as a single string.
On a Linux system with 1.6 GB of RAM, the command $s = /usr/bin/free; puts the following multiline string in $s:

1
2
3
4
             total        used       free     shared      buffers       cached
Mem:      16471704    15488260     983444          0       627820     12076120
-/+ buffers/cache:     2784320   13687384
Swap:            0           0          0

If a program generates a lot of output, it is more memory efficient to read from a pipe one line at a time.

If you’re printing formatted data to the browser based on the output of the pipe, you can print it as you get it.
This example prints information about recent Unix system logins formatted as an HTML table. It uses the /usr/bin/last command:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// print table header
print<<<_HTML_
<table>
<tr>
  <td>user</td><td>login port</td><td>login from</td><td>login time</td>
  <td>time spent logged in</td>
</tr>
_HTML_;
 
// open the pipe to /usr/bin/last
$ph = popen('/usr/bin/last','r') or die($php_errormsg);
while (! feof($ph)) {
$line = fgets($ph) or die($php_errormsg);
 
// don't process blank lines or the info line at the end
if (trim($line) && (! preg_match('/^wtmp begins/',$line))) {
    $user = trim(substr($line,0,8));
    $port = trim(substr($line,9,12));
    $host = trim(substr($line,22,16));
    $date = trim(substr($line,38,25));
    $elapsed = trim(substr($line,63,10),' ()');
 
    if ('logged in' == $elapsed) {
       $elapsed = 'still logged in';
       $date = substr_replace($date,'',-5);
    }
    print "<tr><td>$user</td><td>$port</td><td>$host</td>";
    print "<td>$date</td><td>$elapsed</td></tr>\n";
}
}
pclose($ph) or die($php_errormsg);
 
print '</table>';

 

Share
Tweet
Email
Prev Article
Next Article

Related Articles

Defining Class Constants in PHP
  You want to define constants on a per-class basis, …

Defining Class Constants in PHP

Changing Array Size in PHP
You want to modify the size of an array, either …

Changing Array Size in PHP

About The Author

InfinityCoder
InfinityCoder

Leave a Reply

Cancel reply

Recent Tutorials InfinityQuest

  • Adding New Features to bash Using Loadable Built-ins in bash
    Adding New Features to bash Using Loadable …
    June 27, 2017 0
  • Getting to the Bottom of Things in bash
    Getting to the Bottom of Things in …
    June 27, 2017 0

Recent Comments

  • fer on Turning a Dictionary into XML in Python
  • mahesh on Turning a Dictionary into XML in Python

Categories

  • Bash
  • PHP
  • Python
  • Uncategorized

InfinityQuest - Programming Code Tutorials and Examples with Python, C++, Java, PHP, C#, JavaScript, Swift and more

About Us

Start learning your desired programming language with InfinityQuest.com.

On our website you can access any tutorial that you want with video and code examples.

We are very happy and honored that InfinityQuest.com has been listed as a recommended learning website for students.

Popular Tags

binary data python CIDR convert string into datetime python create xml from dict python dictionary into xml python how to create xml with dict in Python how to write binary data in Python IP Address read binary data python tutorial string as date object python string to datetime python

Archives

  • June 2017
  • April 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
Copyright © 2021 InfinityQuest - Programming Code Tutorials and Examples with Python, C++, Java, PHP, C#, JavaScript, Swift and more
Programming Tutorials | Sitemap