Файл lab2.php
<?php
// Если из командной строки не передано число -- прекратить работу.
if ($argc<2)
{
die("Укажите двоичное число в качестве параметра командной
строки.");
}
// Извлечение числа из параметров, переданных из командной строки.
$num = $argv[1];
// Проверка длины введённых данных.
if (strlen($num)>100)
{
die('Вы ввели слишком длинное число.');
}
/* Проверка того, что из командной строки передано двоичное число.
Данную проверку можно выполнить более эффективно с помощью регулярных
выражений, что и будет показано в закомментированном блоке кода. */
for ($i=0; $i<strlen($num); $i++)
{
if (($num[$i]!='0')&&($num[$i]!='1'))
{
die('Переданное число не является двоичным.');
}
}
/* Та же проверка через регулярные выражения:
if (preg_match("/[^01]/", $num))
{
die('Переданное число не является двоичным.');
}
*/
// Конвертация и вывод результата.
echo bindec($num);
?>
Пример выполнения работы №3
Вариант N: написать функцию, формирующую список только файлов в указанном из командной строки каталоге. В список включить размер файлов в байтах и килобайтах, а также время создания, модификации и последнего обращения к файлу.
Решение
Файл lab3.php
<?php
// Если из командной строки не передано имя
// каталога -- прекратить работу.
if ($argc<2)
{
die("Укажите имя каталога в качестве параметра командной
строки.");
}
// Извлечение имени каталога из
// параметров, переданных из командной строки.
$dir_name = $argv[1];
// Проверка существования каталога.
if (!is_dir($dir_name))
{
die('Такого каталога не существует.');
}
// Открытие каталога.
$dir_resource = opendir($dir_name);
// Проверка успешности операции открытия каталога.
if ($dir_resource === NULL)
{
die('Не удалось открыть каталог.');
}
// Чтение каталога.
while (($file_name = readdir($dir_resource))!== false)
{
// Получение полного имени элемента.
$full_name = $dir_name.'/'.$file_name;
// Проверка того, что элемент
// является файлом.
if (is_file($full_name))
{
// Вывод информации.
echo $file_name.' ';
echo filesize($full_name).
' ('.round(filesize($full_name)/1024,2).' Kb) ';
echo date('Y.m.d H:i:s',
filectime($full_name)).', ';
echo date('Y.m.d H:i:s',
filemtime($full_name)).', ';
echo date('Y.m.d H:i:s',
fileatime($full_name))."\n";
}
}
// Закрытие каталога.
closedir($dir_resource);
?>
Пример выполнения работы №4
Вариант N: в произвольном тексте все целые числа возвести в квадрат и вывести красным цветом.