В скобках после имени вывести первых 30 символов текста (из файла).
Для файлов с расширениями .gif, .jpg, .bmp вывести в скобках слово "Картинка" */
if ($handle = opendir(getcwd()))
{
echo "Files:<br />";
while (false !== ($filename = readdir($handle)))
{
if (($filename==".")||($filename=="..")) continue;
if (is_file($filename))
{
$file_extension=substr($filename,strlen($filename)-4,4);
// php
if ($file_extension==".php")
{
$chars30=join(file($filename));
$chars30=htmlspecialchars("[".substr($chars30,0,30)." ...]");
echo "<font color=\"#00FF00\">".$filename."</font> (".filesize($filename).") [".date("Y.m.d H:i:s",filectime($filename))."] ".$chars30."<br />";
}
// картинки
if (($file_extension==".jpg")||($file_extension==".gif")||($file_extension==".bmp"))
{
echo "<font color=\"#000000\">".$filename."</font> (".filesize($filename).") [".date("Y.m.d H:i:s",filectime($filename))."] (Картинка)<br />";
}
}
else echo "<font color=\"#FF0000\">".$filename."</font><br />";
}
closedir($handle);
}
/* Задание 15
Написать программу, выводящую свой исходный текст */
// Способ 1 - краткий
echo str_replace("\n","<br />",htmlspecialchars(join(file($_SERVER["SCRIPT_FILENAME"]))));
// Способ 2 - подробный
$filename=$_SERVER["SCRIPT_FILENAME"];
$file_as_array_of_strings=file($filename);
$file_as_one_long_string=implode("",$file_as_array_of_strings);
$file_as_one_long_string_for_HTML=htmlspecialchars($file_as_one_long_string);
$file_as_string_with_HTML_linebreakers=str_replace("\n","<br />",$file_as_one_long_string_for_HTML);
echo $file_as_string_with_HTML_linebreakers;
/* Задание 16
Написать программу, реализующую рекурсивный обход каталогов */
// Описываем функцию
function view_dirs($what_dir)
{
echo " Заходим в каталог: ".$what_dir." <br />";
$olddir=getcwd();
chdir($what_dir);
if ($handle = opendir($what_dir))
{
while (false !== ($filename = readdir($handle)))
{
if (($filename==".")||($filename=="..")) continue;
if (is_file($filename))
echo "<font color=\"#0000FF\">".$filename."</font> (".filesize($filename).") [".date("Y.m.d H:i:s",filectime($filename))."]<br />";
elseif (is_dir($filename))
{
echo "<font color=\"#FF0000\">".$filename."</font><br />";
// Рекурсивный вызов
view_dirs($what_dir.$filename."/");
}
}
closedir($handle);
}
else echo "Не могу открыть каталог ".$what_dir;
chdir($olddir);
}
// Вызов функции
view_dirs("C:\\");
/* Задание 17
Написать программу, демонстрирующую работу рекурсии на примере вычисления
факториала числа */
// Описание функции
function fact($x)
{
echo "Вызов функции с x = [".$x."]<br>";
if ($x==0)
{
echo "Возврат факториала нуля, т.е. 1<br/>";
return 1;
}
echo "Считаем x = ".$x." * fact(".($x-1).")<br/>";
$x=$x*fact($x-1);
echo "Возврат значения x = [".$x."]<br>";
return $x;
}
// Вызов функции для подсчёта факториала 5
echo fact(5);
/* Задание 18
Написать программу, получающую от пользователя любое количество файлов через
HTML-форму */
<?
for ($i=0;$i<count($_FILES["mf"]["name"]);$i++)
{
if ((isset($_FILES["mf"]["name"][$i]))&&($_FILES["mf"]["size"][$i]!=0))
{
if (move_uploaded_file($_FILES["mf"]["tmp_name"][$i],"c:/www_pub/for_files/".$_FILES["mf"]["name"][$i]))
echo "<br />Файл [".$_FILES["mf"]["name"][$i]."] успешно загружен! <br />";
}
}
?>
<form method="post" action="<?=$_SERVER["PHP_SELF"]?>" enctype="multipart/form-data">
<input type="file" name="mf[]"><br />
<input type="file" name="mf[]"><br />
<input type="file" name="mf[]"><br />
<input type="submit" value="Send"><br />
</form>
/* Задание 19
Написать программу, получающую от пользователя файл через HTML-форму и сохранющую этот файл под именем, указанным пользовастелем */
<?
if ((isset($_FILES["myfile1"]))&&($_FILES["myfile1"]["size"]!=0))
{
if ((trim($_POST["newfn"]))=="")
{
echo "Вы не ввели новое имя файла!<br>";
}
else
{
if (@move_uploaded_file($_FILES["myfile1"]["tmp_name"],"c:/www_pub/for_files/".$_POST["newfn"]))
echo "Файл [".$_FILES["myfile1"]["name"]."] успешно загружен с новым именем [".$_POST["newfn"]."] !";
else echo "Не удалось сохранить файл с именем [".$_POST["newfn"]."]! Возможно, имя некорректно!";
}
}
?>
<form method="post" action="<?=$_SERVER["PHP_SELF"]?>" enctype="multipart/form-data">
<input type="file" name="myfile1"><br />
<input type="text" name="newfn"><br />
<input type="submit" value="Send"><br />
</form>
/* Задание 20
Написать программу, в одном файле устанавливающую в сессию переменную $a, а в другом файле получающую значение этой переменной */
Php
<?
session_start();
$a=17;
$_SESSION["a"]=$a;
?>
Php
<?
session_start();
$a=$_SESSION["a"];
echo $a;
?>
/* Задание 21
Написать программу, в одном файле устанавливающую cookie, а в другом файле получающую значение cookie */
Php
<?
setcookie("myvar","Hello!",time()+3600);
?>
Php
<?
if (isset($_COOKIE["myvar"])) echo $myvar; else echo "No \$myvar in cookies!";
?>
/* Задание 22
В первом файле начать сессию и сделать доступными в рамках сессии
Переменные a, b, c. В этом же файле переменные a и b сохранить в cookie.
Во втором файле прочитать значение переменных a, b, c из сессии
и значения переменных a и b из cookie */
Php
<?
session_start();
$a="Minsk";
$b="Melkikayte 4";
$c=307;
$_SESSION["a"]=$a;
$_SESSION["b"]=$b;
$_SESSION["c"]=$c;
setcookie("a",$a,time()+3600);
setcookie("b",$b,time()+3600);
?>
Php
<?
session_start();
$a=$_SESSION["a"];
$b=$_SESSION["b"];
$c=$_SESSION["c"];
echo "Значения из сессии: a=[".$a."] b=[".$b."] c=[".$c."]<br />";
$a=$_COOKIE["a"];
$b=$_COOKIE["b"];
echo "Значения из cookie: a=[".$a."] b=[".$b."]<br />";
?>
/* Задание 23
Продемонстрировать на простых примерах работу регулярных выражеий */
$a="Это текст 123 создеоржащий 2 and 7 27 63463245 символы 128 и цифры 842 бсьавалаьл";
echo $a."<br />";
$b=preg_match_all("/\d\d\d/",$a,$matches);
echo $b."<br />";
print_r($matches);
/*
5 Array ( [0] => Array ( [0] => 123 [1] => 634 [2] => 632 [3] => 128 [4] => 842 ) )
*/
$b=preg_match_all("/\w\s\d\d/",$a,$matches);
echo $b."<br />";
print_r($matches);
/*
4 Array ( [0] => Array ( [0] => т 12 [1] => 7 27 [2] => ы 12 [3] => ы 84 ) )
*/
$b=preg_match_all("/\d and \d/",$a,$matches);
echo $b."<br />";
print_r($matches);
/*
1 Array ( [0] => Array ( [0] => 2 and 7 ) )
*/
$b=preg_match_all("/[0-9A-Fa-f]/",$a,$matches);
echo $b."<br />";
print_r($matches);
/*
23 Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 2 [4] => a [5] => d [6] => 7 [7] => 2 [8] => 7 [9] => 6 [10] => 3 [11] => 4 [12] => 6 [13] => 3 [14] => 2 [15] => 4 [16] => 5 [17] => 1 [18] => 2 [19] => 8 [20] => 8 [21] => 4 [22] => 2 ) )
*/
$b=preg_match_all("/\d(\d)\d/",$a,$matches);
echo $b."<br />";
print_r($matches);
/*
5 Array ( [0] => Array ( [0] => 123 [1] => 634 [2] => 632 [3] => 128 [4] => 842 ) [1] => Array ( [0] => 2 [1] => 3 [2] => 3 [3] => 2 [4] => 4 ) )
*/
/* Задание 24
Файл MS-Excell экспортирован в формат CSV. Прочитать CSV-файл и показать его в виде таблицы. */
Файл "Книга1.csv":
1;aa;erwe
2;ss;wer
3;dd;wer
4;f;wer
5;ffffg;wer
;wer;
;8888;wetr
;;wer
Скрипт, выполняющий задание:
// Прочитываем файл в массив
$csv_file="Книга1.csv";
$csv_file=file($csv_file);
// Определяем самую длинную строку, чтобы построить ряды
// таблицы для пустых строк
$maxline=0;
foreach ($csv_file as $ckey => $cval)
{
$row=explode(";",$cval);
$csv_file[$ckey]=$row;
if (count($row)>$maxline) $maxline=count($row);
}
echo "<table border=\"1\">";
foreach ($csv_file as $ckey => $cval)
{
echo "<tr>";
foreach ($cval as $cellkey => $cellval)
{
echo "<td>";
if (trim($cellval)!="") echo $cellval; else echo " ";
echo "</td>";
// Дополяем количество ячеек до максимального
for ($i=count($cval);$i<$maxline;$i++)
{
$csv_file[$ckey][]="";
echo "<td>";
echo " ";
echo "</td>";
}
}
echo "</tr>";
}
echo "</table>";
/* Задание 25
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|