PHP Classes

File: example1.php

Recommend this page to a friend!
  Classes of Colin McKinnon   Code Graph   example1.php   Download  
File: example1.php
Role: Example script
Content type: text/plain
Description: Usage example
Class: Code Graph
Generate call graphs of PHP code with GraphViz
Author: By
Last change:
Date: 13 years ago
Size: 1,328 bytes
 

Contents

Class file image Download
<?php
/**
 * example1.php
 *
 * this script provides a user to upload a PHP src file
 * and returns the resulting jpeg image
 */

if (count($_FILES)) {
    if (
$_FILES["file"]["error"] > 0) {
          echo
"Error: " . $_FILES["file"]["error"] . "<br />";
      } else {
       
show_graph();
    }
} else {
   
// no files uploaded
   
show_form();
}
exit;

function
show_form()
{
    print
"<html>\n<body>\n";
    print
"<h2>upload some php code</h2>\n";
    print
'
<form method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>'
;
    print
"\n</body>\n</html>\n";
   
}

function
show_graph()
{
    require_once(
"dotwriter.inc.php");
   
$c = new dotrunner();
   
// need somewhere to write temp file and resulting jpeg
   
$c->outputFileName=tempnam('graphs/','graph');

   
$outfile=$c->genGraph(
      
/* first param is the src code */
       
file_get_contents($_FILES["file"]["tmp_name"]),
      
/* 2nd param is a title for the graph - normally this would be the filename */
       
'Uploaded');

    if (
file_exists($outfile) && ($in=fopen($outfile, 'r'))) {
       
header('Content-Type: image/jpeg');
        while(
$pt=fgets($in, 8096)) {
            print
$pt;
        }
       
fclose($in);
       
unlink($outfile);
    } else {
        print
"erm.....something went wrong?";
    }

   
$c->cleanUp();
   
}