Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 23:30, лабораторная работа
Цель: Изучение возможностей языка серверных сценариев - PHP. Ознакомление с функциями навигации по файловой системе. Постановка задачи: Необходимо в сайт, созданный в лабораторной работе №4 добавить страницу Файловый навигатор. Данная страница должна представлять собой окно, позволяющее выполнять навигацию по файловой системе сервера в рамках каталога, где размещается сайт.
$y = $sizes[0];
for ($i = 1; (($i < count($sizes)) && ($size >= 1024)); $i++)
{
$size = $size / 1024;
$y = $sizes[$i];
}
return round($size, 2)." ".$y;
}
//
// Debugging output
//
function debug()
{
print("Explorer
location: ".$this->location->getDir(
for($i = 0; $i < count($this->dirs); $i++)
$this->dirs[$i]->output();
for($i = 0; $i < count($this->files); $i++)
$this->files[$i]->output();
}
//
// Comparison functions for sorting.
//
public static function cmp_name($b, $a)
{
return strcasecmp($a->name, $b->name);
}
public static function cmp_size($a, $b)
{
return ($a->size - $b->size);
}
public static function cmp_mod($b, $a)
{
return ($a->modTime - $b->modTime);
}
//
// The function for getting a translated string.
// Falls back to english if the correct language is missing something.
//
public static function getLangString($stringName, $lang)
{
global $_TRANSLATIONS;
if(isset($_TRANSLATIONS[$lang]
&& isset($_TRANSLATIONS[$lang][$
return $_TRANSLATIONS[$lang][$
else if(isset($_TRANSLATIONS["en"])
return $_TRANSLATIONS["en"][$
else
return "Translation error";
}
function getString($stringName)
{
return EncodeExplorer::getLangString(
}
//
// The function for getting configuration values
//
public static function getConfig($name)
{
global $_CONFIG;
if(isset($_CONFIG) && isset($_CONFIG[$name]))
return $_CONFIG[$name];
return null;
}
public static function setError($message)
{
global $_ERROR;
if(isset($_ERROR) && strlen($_ERROR) > 0)
;// keep the first error and discard the rest
else
$_ERROR = $message;
}
function setErrorString($stringName)
{
EncodeExplorer::setError($
}
//
// Main function, activating tasks
//
function run($location)
{
$this->location = $location;
$this->readDir();
$this->sort();
$this->outputHtml();
}
//
// Printing the actual page
//
function outputHtml()
{
global $_ERROR;
global $_START_TIME;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/
<html>
<head>
<title>Web-Programming :: Лабораторная работа №5</title>
<html xmlns="http://www.w3.org/1999/
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="fm.css"></style>
</head>
<body>
<div id="content">
<?php include('partial/head.php'); ?>
<?php include('partial/foot.php'); ?>
<div id="id7-cntr">
<?php
//
// Print the error (if there is something to print)
//
if(isset($_ERROR) && strlen($_ERROR) > 0)
{
print "<div
id=\"error\">".$_ERROR."</div>
}
?>
<div id="frame">
<?php
if(EncodeExplorer::getConfig('
{
?>
<div id="top">
<a href="<?php
print $this->makeLink(null, null, null, ""); ?>"><span><?php
if(EncodeExplorer::getConfig('
</div>
<?php
}
?>
<div class="breadcrumbs">
<a href="?dir="><?php print $this->getString("root"); ?></a>
<?php
for($i = 0; $i < count($this->location->path); $i++)
{
print "> <a href=\"".$this->makeLink(null, null, null, $this->location->getDir(false, true, false, count($this->location->path) - $i - 1))."\">";
print $this->location->getPathLink($
print "</a>\n";
}
?>
</div>
<!-- START: List table -->
<table class="table">
<tr class="row one header">
<td class="icon"> </td>
<td class="name"><?php
print $this->makeArrow("name");?></
<td class="size"><?php print $this->makeArrow("size"); ?></td>
<td class="changed"><?php print $this->makeArrow("mod"); ?></td>
<td class="del"><?php
print EncodeExplorer::getString("
</tr>
<tr class="row two">
<td class="icon"><img alt="dir" src="<?php print $this->makeIcon('directory'); ?>" /></td>
<td colspan="4" class="long">
<a class="item" href="<?php print $this->makeLink(null, null, null, $this->location->getDir(false, true, false, 1)); ?>">..</a>
</td>
</tr>
<?php
//
// Ready to display folders and files.
//
$row = 1;
//
// Folders first
//
if($this->dirs)
{
foreach ($this->dirs as $dir)
{
$row_style = ($row ? "one" : "two");
print "<tr class=\"row ".$row_style."\">\n";
print "<td class=\"icon\"><img
alt=\"dir\" src=\"".$this->makeIcon('
print "<td class=\"name\" colspan=\"3\">\n";
print "<a href=\"".$this->makeLink(null, null, null, $this->location->getDir(false, true, false, 0).$dir->getNameEncoded())."\" class=\"item dir\">";
print $dir->getNameHtml();
print "</a>\n";
print "</td>\n";
print "<td class=\"del\"><a
data-name=\"".htmlentities($
print "</tr>\n";
$row =! $row;
}
}
//
// Now the files
//
if($this->files)
{
$count = 0;
foreach ($this->files as $file)
{
$row_style = ($row ? "one" : "two");
print "<tr class=\"row ".$row_style.(++$count == count($this->files)?" last":"")."\">\n";
print "<td class=\"icon\"><img
alt=\"".$file->getType()."\" src=\"".$this->makeIcon($file-
print "<td class=\"name\">\n";
print "\t\t<a
href=\"".$this->location->
print " class=\"item file";
print "\">";
print $file->getNameHtml();
print "</a>\n";
print "</td>\n";
print "<td class=\"size\">".$this->
print "<td class=\"changed\">".$this->
print "<td class=\"del\">
<a data-name=\"".htmlentities($
<img src=\"".$this->makeIcon('del')
</a>
</td>";
print "</tr>\n";
$row =! $row;
}
}
//
// The files and folders have been displayed
//
?>
</table>
<!-- END: List table -->
</div>
<!-- START: Info area -->
<div id="info">
<?php
printf($this->getString("page_
?>
</div>
<!-- END: Info area -->
</div>
</div>
</body>
</html>
<?php
}
}
//
// This is where the system is activated.
// We check if the user wants an image and show it. If not, we show the explorer.
//
$encodeExplorer = new EncodeExplorer();
$encodeExplorer->init();
$location = new Location();
$location->init();
$fileManager = new FileManager();
$fileManager->run($location);
$encodeExplorer->run($
?>
Вывод: В ходе лабораторной работы я повторил основы построения языка серверных сценариев - PHP.
Информация о работе Изучение возможностей языка серверных сценариев - PHP