Изучение возможностей языка серверных сценариев - PHP

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 23:30, лабораторная работа

Описание работы

Цель: Изучение возможностей языка серверных сценариев - PHP. Ознакомление с функциями навигации по файловой системе. Постановка задачи: Необходимо в сайт, созданный в лабораторной работе №4 добавить страницу Файловый навигатор. Данная страница должна представлять собой окно, позволяющее выполнять навигацию по файловой системе сервера в рамках каталога, где размещается сайт.

Файлы: 1 файл

Report.docx

— 39.40 Кб (Скачать файл)

$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(true, false, false, 0)."\n");

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]) && is_array($_TRANSLATIONS[$lang])

&& isset($_TRANSLATIONS[$lang][$stringName]))

return $_TRANSLATIONS[$lang][$stringName];

else if(isset($_TRANSLATIONS["en"]))

return $_TRANSLATIONS["en"][$stringName];

else

return "Translation error";

}

 

function getString($stringName)

{

return EncodeExplorer::getLangString($stringName, $this->lang);

}

 

//

// 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($this->getString($stringName));

}

 

//

// 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/strict.dtd">

<html>

<head>

<title>Web-Programming :: Лабораторная работа №5</title>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $this->getConfig('lang'); ?>" lang="<?php print $this->getConfig('lang'); ?>">

<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('show_top') == true)

{

?>

<div id="top">

<a href="<?php print $this->makeLink(null, null, null, ""); ?>"><span><?php if(EncodeExplorer::getConfig('main_title') != null) print EncodeExplorer::getConfig('main_title'); ?></span></a>

</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 "&gt; <a href=\"".$this->makeLink(null, null, null, $this->location->getDir(false, true, false, count($this->location->path) - $i - 1))."\">";

print $this->location->getPathLink($i, true);

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>

<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("del"); ?></td>

</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('directory')."\" /></td>\n";

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($dir->getName())."\" href=\"".$this->makeLink(null, null, $this->location->getDir(false, true, false, 0).$dir->getNameEncoded(), $this->location->getDir(false, true, false, 0))."\"><img src=\"".$this->makeIcon('del')."\" alt=\"Delete\" /></a></td>";

 

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->getType())."\" /></td>\n";

print "<td class=\"name\">\n";

print "\t\t<a href=\"".$this->location->getDir(false, true, false, 0).$file->getNameEncoded()."\"";

 

print " class=\"item file";

 

print "\">";

print $file->getNameHtml();

 

print "</a>\n";

print "</td>\n";

 

print "<td class=\"size\">".$this->formatSize($file->getSize())."</td>\n";

print "<td class=\"changed\">".$this->formatModTime($file->getModTime())."</td>\n";

 

print "<td class=\"del\">

<a data-name=\"".htmlentities($file->getName())."\" href=\"".$this->makeLink(null, null, $this->location->getDir(false, true, false, 0).$file->getNameEncoded(), $this->location->getDir(false, true, false, 0))."\">

<img src=\"".$this->makeIcon('del')."\" alt=\"Delete\" />

</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_load_time"), (microtime(TRUE) - $_START_TIME)*1000);

?>

</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($location);

?>

 

Вывод:  В ходе лабораторной работы я повторил основы построения языка серверных сценариев - PHP.


Информация о работе Изучение возможностей языка серверных сценариев - PHP