|
 863 байт |
|
| Ответ на задачу N 7 | |
|
|
|
|
 1.7 Кб |
|
|
для: pavbam
(29.04.2013 в 02:01)
| | создаю дополнительные функции | |
|
|
|
|
 472 байт |
|
|
для: pavbam
(29.04.2013 в 02:08)
| | сортировка в случайном порядке | |
|
|
|
|
 452 байт |
|
|
для: pavbam
(29.04.2013 в 02:09)
| | 2й скрипт | |
|
|
|
|
 449 байт |
|
|
для: pavbam
(29.04.2013 в 02:10)
| | скрирт сортировки по алфавиту | |
|
|
|
|
|
|
|
для: pavbam
(29.04.2013 в 02:11)
| |
<!-- index.html -->
<!-- Задача N7 -->
<!-- pavbam -->
<!-- страница index с сылками на скрипты сортировки -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>задача N7. СОРТИРОВКА СОДЕРЖИМОГО ФАЙЛА</title>
</head>
<body>
<p>
<a href="mixture.php" target="self" title="Нажми меня">Случайная сортировка</a>
</p>
<p>
<a href="ordernum.php" target="self" title="Нажми меня">Лексикографическая сортировка</a>
</p>
<p>
<a href="orderalph.php" target="self" title="Нажми меня">Алфавитная сортировка</a>
</p>
</body>
</html>
|
<?php
/* MyFunction.php */
/* подключеный файл с дополнительными функциями */
/* Считывание файла в массив */
function openFileToArr ($file, $BOOL)
{
if($BOOL) //создаем массив с числами
{
$arr = file ($file); //записываем файл в массив
foreach ($arr as $key => $value) //избавляемся от лишних символов пробелов
{
$arr[$key] = trim ($value);
}
}
else //создаем массив без чисел
{ /* разбиваем строку на подстроки */
/* В качестве разделителей используем пробел, табуляцию и перевод строки */
$tok = strtok(file_get_contents ($file), " \n\t");
while ($tok !== false) {
if (!is_numeric($tok)) //запоняем новый массив искючая цифры
{
$arr[]=$tok;
}
$tok = strtok(" \n\t");
}
}
return $arr;
}
/* Запись массива в файл */
function fileRite ($arr, $BOOL)
{
$file = fopen("data.txt", "w"); //открываем файл для записи предварительно очистив его
if ($BOOL) //записываем файл со старой нумерацией
{
fwrite ($file, implode ("\n", $arr));
}
else //записываем файл с новой нумерацией
{
foreach ($arr as $key=>$value)
{
$i++;
$tempWr = $i." ".$value."\n"; //формируем строку для записи
fwrite ($file, $tempWr); //записываем строку
}
}
fclose($file); //закрываем файл
}
?>
|
<?php
/* mixture.php */
include 'MyFunction.php'; //подключаем свои функции
$arr = openFileToArr ('data.txt', TRUE); //открываем файл в массив только слова
shuffle($arr); //пекемешиваем в случайном порядке
fileRite ($arr, TRUE); //записываем файл
header("Location: index.html");// направляем пользователя на страницу с формой
?>
|
<?php
/* ordernum.php */
include 'MyFunction.php'; //подключаем свои функции
$arr = openFileToArr ('data.txt', true); //открываем файл в массив
natcasesort($arr); //сортируем в возрастающем порядке
fileRite ($arr, true); //записываем файл
header("Location: index.html");// направляем пользователя на страницу с формой
?>
|
<?php
/* orderalph.php */
include 'MyFunction.php'; //подключаем свои функции
$arr = openFileToArr ('data.txt', FALSE); //открываем файл в массив
natsort($arr); //сортируем в возрастающем порядке
fileRite ($arr, FALSE);//записываем файл
header("Location: index.html");// направляем пользователя на страницу с формой
?>
|
| |
|
|
|
|
|
|
|
|
для: pavbam
(29.04.2013 в 02:31)
| | объемный код и все остальное лучше прикреплять архивом | |
|
|
|
|
|
|
|
для: Valick
(29.04.2013 в 09:08)
| | Объемный - это в прикрепленный функциях? старался за щет них уменишить сами скрипты заданные в задании((( | |
|
|
|
|
|
|
|
для: pavbam
(29.04.2013 в 02:17)
| | - | |
|
|
|
|
|
|
|
для: pavbam
(29.04.2013 в 02:17)
| | 1. При сортировке в orderalph.php не сохраняется номера напротив языков программирования, т.е. строки меняются, а они должны оставаться неизменными. | |
|
|
|
|
|
|
|
для: pavbam
(29.04.2013 в 02:17)
| | Код не очень читаем и содержит некоторые небрежности, например, часть параметров строчным, часть прописными буквами $file, $BOOL. Допустим $BOOL используется для обозначения константных значений, но в одном случае true, в другом TRUE.
В одном случае глагол в начале функции (open), в другом - в конце (write).
Многострочные комментарии используются в однострочном режиме, даже когда идет подряд две строки комментариев.
Использование комментария после точки с запятой не всегда удачное решение, так как удлиняет строку (впрочем такой стиль имеет право на существование).
Банально ошибки в словах fileRite вместо fileWrite, пекемешиваем вместо перемешиваем.
Очень не понравился Camel-обозначение файла MyFunction.php (как раз сейчас на linux-машине, где регистр файлов имеет значение). Обычно файлы стараются записывать строчными буквами my_function, а классы и функции внутри их уже в Camel-режиме. Это имеет смысл для кроссплатформенной совместимости. Кроме того, если у вас внутри файла функций больше, чем одна, то имеет смысл в названии отразить множественное число my_functions.php. Вместо же my, лучше использовать что-то более осмысленное, например, file_functions.php. Это более читабельно.
Читаемость - 3
Тонкости - 1 (shuffle)
Оригинальность - 3 | |
|
|
|
|
|
|
|
для: cheops
(29.04.2013 в 22:40)
| | Спасибо за подробные замечания! Буду стараться лучше )) | |
|
|
|