Skip to page content or skip to Accesskey List.
Search evolt.org
evolt.org login: or register

Work

Main Page Content

PHP Super Widget

Rated 0 (Add your rating)

Log in to add a comment
(0 comments so far)

Want more?

 
Picture of adriank

Adrian Kearns

Member info | Full bio

User since: March 20, 2000

Last login: March 24, 2000

Articles written: 1

The Super Widget is a crawler that will can return useful info including <Meta> tags where present or read and output a selectable amount of bytes from the files it can open.

It was home built using PHP Version 4.0.2, on a win95 box running Apache 1.3.11 (Win32 Binary).

It should be fairy easy for you to add your own tweeks even if your a php beginner (like me).

Plans are also afoot to build an ASP / VB script version.

Here's the code. save it as 'super_widget.php'.

<small>
<pre>
==================================
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0Transitional//EN&quot;
&quot;http://www.w3.org/TR/REC-html40/loose.dtd&quot;&gt;

&lt;html&gt;&lt;head&gt;

&lt;title&gt;Super Widget&lt;/title&gt;

&lt;META name=&quot;description&quot; content=&quot;Super Widget - Version: Php 1.0&quot;&gt;
&lt;META name=&quot;Author&quot; content=&quot;abk@webscape.co.nz&quot;&gt;

&lt;!--
This little widget is free for non commercial use.
Please don't try and sell it to make money or it will automatically crash your server.
Enjoy :)
--&gt;

&lt;style type=&quot;text/css&quot;&gt;&lt;!--

body { font-size: 100%; margin: 3em; }

h4 { font-family: verdana,helvetica,arial,sans-serif; }

p,ul,ol,li,form,input { font-size: 90%; font-family: verdana,helvetica,arial,sans-serif; }

td { background-color: #ddeeff; }

ul,ol,li { color: #ff9933; }
span { color: #999999; }

.asp { color: #0000ff; }
.css { color: #ff66cc; }
.htm { color: #cc00ff; }
.tml { color: #cc0099; }
.stm { color: #cc0033; }
.txt { color: #ff0000; }
.php { color: #0099ff; }

.meta { color: #000000; background-color: #ffeeee; }
.byte { color: #000000; background-color: #eeeeff; }

:link { color: #3366dd; text-decoration: none; }
v:link { color: #3366dd; text-decoration: none; }
a:link { color: #3366dd; text-decoration: none; }
a:visited { color: #3366dd; text-decoration: none; }
a:active { color: #3366dd; text-decoration: none; }
a:hover { color: #3366dd; }

--&gt;&lt;/style&gt;

&lt;/head&gt;


&lt;body&gt;


&lt;h4 align=&quot;center&quot;&gt;&lt;b&gt;S U P E R &nbsp; W I D G E T&lt;/b&gt;&lt;/h4&gt;

&lt;?

if ($todo == &quot;&quot;)
{

?&gt;

&lt;form action=&quot;super_widget.php&quot; method=&quot;post&quot;&gt;

&lt;input type=&quot;hidden&quot; name=&quot;todo&quot; value=&quot;doit&quot;&gt;

&lt;table width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellspacing=&quot;0&quot; cellpadding=&quot;3&quot;&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Search Root: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;root_arg&quot; value=&quot;&quot; size=&quot;20&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Extra Info: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;select name=&quot;process&quot;&gt;

&lt;option value=&quot;None&quot;&gt;None&lt;/option&gt;
&lt;option value=&quot;Meta Tags&quot;&gt;Meta tags&lt;/option&gt;
&lt;option value=&quot;Output Bytes&quot;&gt;Output Bytes&lt;/option&gt;

&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Number of bytes to output: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;select name=&quot;my_length&quot;&gt;

&lt;option value=&quot;10&quot;&gt;10&lt;/option&gt;
&lt;option value=&quot;50&quot;&gt;50&lt;/option&gt;
&lt;option value=&quot;100&quot;&gt;100&lt;/option&gt;
&lt;option value=&quot;200&quot;&gt;200&lt;/option&gt;
&lt;option value=&quot;500&quot;&gt;500&lt;/option&gt;
&lt;option value=&quot;1000&quot;&gt;1000&lt;/option&gt;
&lt;option value=&quot;3000&quot;&gt;3000&lt;/option&gt;

&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&nbsp;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt; &lt;input type=&quot;submit&quot; value=&quot;Go!&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;&lt;/form&gt;

&lt;?

}
else
{

//================================================

//echo &quot;&lt;ol&gt;&quot;;

function file_widget ($file_name)
{
global $root_arg, $process, $my_length;
$extn = substr($file_name, -3, 3);

if (($extn == &quot;asp&quot;) or ($extn == &quot;css&quot;) or ($extn == &quot;htm&quot;) or ($extn == &quot;tml&quot;) or ($extn == &quot;stm&quot;) or ($extn == &quot;txt&quot;) or ($extn == &quot;php&quot;))
{
echo &quot;&lt;li&gt;&lt;span class='&quot; . $extn . &quot;'&gt;&quot; . $file_name . &quot;&lt;/span&gt;\n&quot;;

if ($process == &quot;None&quot;)
{
echo &quot;&lt;/li&gt;&quot;;
}
elseif ($process == &quot;Meta Tags&quot;)
{
$meta_info = get_meta_tags($file_name);
foreach($meta_info as $k =&gt; $v)
{
echo &quot;&lt;br&gt;&lt;span class='meta'&gt;[ &quot; . $k . &quot; ][ &quot; . $v . &quot; ]&lt;/span&gt;&lt;/li&gt;&quot;;
}
//$meta_info = &quot;&quot;;
}
elseif ($process == &quot;Output Bytes&quot;)
{
$fd = fopen( $file_name, &quot;r&quot; );

// Outputs the whole file
//$contents = fread ($fd, filesize ($file_name));

// length in bytes to read.
$contents = fread ($fd, ($my_length));

$contents = strtr($contents, &quot;&lt;&quot;, &quot;[&quot;);
$contents = strtr($contents, &quot;&gt;&quot;, &quot;]&quot;);
echo &quot;&lt;br&gt;&lt;span class='byte'&gt;&quot; . $contents . &quot;&lt;/span&gt;&lt;/li&gt;\n&quot;;
fclose( $fd );
}
}
else
{
echo &quot;&lt;li&gt;&lt;span&gt;&quot; . $file_name . &quot;&lt;/span&gt;&lt;/li&gt;\n&quot;;
}
}

//================================================

function general_widget ($dir_arg)
{
global $root_arg, $process, $my_length, $extn;
if (is_file($dir_arg) == TRUE)
{
//i am a file
}
else
{
$handle=opendir($dir_arg);
//echo $root_arg . &quot;\&lt;br&gt;&quot;;
echo &quot;&lt;ol&gt;\n&quot;;

while ($file = readdir($handle))
{
         if ($file == &quot;.&quot;)
                 {
                         //echo &quot;&lt;a href='$file'&gt;&lt;b&gt;Root&lt;/b&gt;&lt;/a&gt;&lt;br&gt;\n&quot;;
}
elseif ($file == &quot;..&quot;)
{
//echo &quot;&lt;a href='$file'&gt;&lt;b&gt;Up One Level&lt;/b&gt;&lt;/a&gt;&lt;br&gt;\n&quot;;
}
else
{
if (is_file($file) == TRUE)
{
echo file_widget ($file);
}
else
{
$woo = $dir_arg . chr(47) . $file;
echo file_widget ($woo);
echo general_widget ($woo);
}
}
}
echo &quot;&lt;/ol&gt;\n&quot;;
closedir($handle);
}
}

//================================================

?&gt;

&lt;form action=&quot;super_widget.php&quot; method=&quot;post&quot;&gt;

&lt;input type=&quot;hidden&quot; name=&quot;todo&quot; value=&quot;doit&quot;&gt;

&lt;table width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellspacing=&quot;0&quot; cellpadding=&quot;3&quot;&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Search Root: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;root_arg&quot; value=&quot;&lt;? echo $root_arg; ?&gt;&quot; size=&quot;20&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Extra Info: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;select name=&quot;process&quot;&gt;

&lt;option selected value=&quot;&lt;? echo $process; ?&gt;&quot;&gt;&lt;? echo $process; ?&gt;&lt;/option&gt;
&lt;option value=&quot;None&quot;&gt;None&lt;/option&gt;
&lt;option value=&quot;Meta Tags&quot;&gt;Meta Tags&lt;/option&gt;
&lt;option value=&quot;Output Bytes&quot;&gt;Output Bytes&lt;/option&gt;

&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&lt;p&gt;&lt;b&gt;Number of bytes to output: &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;select name=&quot;my_length&quot;&gt;

&lt;option selected value=&quot;&lt;? echo $my_length; ?&gt;&quot;&gt;&lt;? echo $my_length; ?&gt;&lt;/option&gt;
&lt;option value=&quot;10&quot;&gt;10&lt;/option&gt;
&lt;option value=&quot;50&quot;&gt;50&lt;/option&gt;
&lt;option value=&quot;100&quot;&gt;100&lt;/option&gt;
&lt;option value=&quot;200&quot;&gt;200&lt;/option&gt;
&lt;option value=&quot;500&quot;&gt;500&lt;/option&gt;
&lt;option value=&quot;1000&quot;&gt;1000&lt;/option&gt;
&lt;option value=&quot;3000&quot;&gt;3000&lt;/option&gt;

&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;&nbsp;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt; &lt;input type=&quot;submit&quot; value=&quot;Go!&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;&lt;/form&gt;

&lt;?

//define the root dir for the general_widget() and execute

general_widget ($root_arg);

echo &quot;&lt;p align='center'&gt;&lt;b&gt;--- Complete ---&lt;/b&gt;&lt;/p&gt;&quot;;

//================================================

}

?&gt;

&lt;!-- end content --&gt;
</pre>
</small>

Super Widget - Version: Php 1.0

The access keys for this page are: ALT (Control on a Mac) plus:

evolt.orgEvolt.org is an all-volunteer resource for web developers made up of a discussion list, a browser archive, and member-submitted articles. This article is the property of its author, please do not redistribute or use elsewhere without checking with the author.