Version: 1.11
Type: Full Script
Category: HTML
License: GNU General Public License
Description: added option checker and color syntax
<?php
/**
* phpMan is a web interface of Unix command 'man' and 'perldoc'.
* This script makes it easier to read man pages which is lengthy
* and require you to use 'more' or 'pg' filters.
* Just try it if you feel hard to remember the command for page back
* or need to dump man page into text/html format.
*
* $Id: phpMan.php,v 1.11 2002/05/31 13:54:51 chedong Exp $
* Author: Che, Dong
* chedong@bigfoot.com
*/
//global title
$PHP_MAN_TITLE = "phpMan: Unix Manual / Perldoc Web Interface";
//header
echo "<html>
<head>
<style type=\"text/css\">
<!--
b {color:blue}
u {color:green}
//-->
</style>
<title>$PHP_MAN_TITLE</title>
</head>
<body>";
//option checker
if ($docType == "perldoc") {
$check_man = "";
$check_perldoc = " checked";
}
else {
$check_man = " checked";
$check_perldoc = "";
}
//add promter and recursive call
echo "<b>$PHP_MAN_TITLE</b>
<form action=\"$PHP_SELF\">
Command:
<input type=\"text\" size=20 name=\"parm\" value=\"$parm\">
<input type=\"radio\" name=\"docType\" value=\"man\"$check_man>man
<input type=\"radio\" name=\"docType\" value=\"perldoc\"$check_perldoc>perldoc
<input type=submit>
</form>";
echo "<hr /><br />";
echo "<pre>";
//remove unsecure commands
$semi = strpos($parm,";");
if ($semi > 1)
$parm = substr($parm, 0, $semi);
if ( $docType == "perldoc" )
exec("perldoc $parm",$lines,$rc);
else
exec("man $parm",$lines,$rc);
$count = count($lines);
for ( $i = 1; $i <= $count; $i ++ ) {
//highlighting attribute characters
$patterns = array(
"/</", //html special char: '>' => '<';
"/>/", //html special char: '<' => '>';
"/_".chr(8)."(.)".chr(8)."./", // _^H?^H? => <b><u>?</u></b>
"/_".chr(8)."(.)/", //_^H? => <u>?</u>
"/.".chr(8)."(.)/", //?^H? => <b>?</b>
"/<b>.<\/b>".chr(8)."(<b>.<\/b>)/", //duplicated: <b>?</b>^H<b>?</b> => <b>?</b>
"/<<b>&<\/b>lt;/", //reverse <^H< => <b><</b>
"/><b>&<\/b>gt;/", //reverse >^H> => <b>></b>
);
$replace = array(
"<",
">",
"<b><u>\\1</u></b>",
"<u>\\1</u>",
"<b>\\1</b>",
"\\1",
"<b><</b>",
"<b>></b>"
);
$lines[$i] = preg_replace($patterns, $replace, $lines[$i]);
echo "$lines[$i] <br />";
}
//footer
echo "</pre>
<hr />
<br />
<a href=\"http://www.phpbuilder.com/snippet/detail.php?type=snippet&id=597\">\$Id: phpMan.php,v 1.11 2002/05/31 13:54:51 chedong Exp $</a>
</body>
</html>";
?>