КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тема № 10. Работа с каталогами в сценариях РНР
Цель работы: Получение практических навыков по работе с деревом каталогов.
Задание 1. Создать каталог и добавить в него файл. Пусть необходимо создать каталог Users1 по пути: W:/home/localhost/www/php/Lab/Users1 и сформировать в этом каталоге файл с именем users10.txt на основе информации показанной в форме на рис. 3.156.
Рис. 3.156. Форма ввода и результат работы файла Lab10.php.
Форма показанная на рис. 3.156, создается с помощью листинга программы Lab10.php, приведенной на рис. 3.157.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Lab10 Создание каталога</title></head>
<body> <p>Lab10 Создание каталога</p> <?PHP // тело основной программы echo 'Текущий каталог realpath(.)='.realpath(".").'<br>';//выводит имя текущего каталога W:\home\localhost\www\php //т. е. имя рабочего каталога в котором //находится исполняемый скрипт.
$pos = strpos($_SERVER['PHP_SELF'],"/php/"); // //Например $_SERVER['PHP_SELF']=/php/Lab10.php $str=substr($_SERVER['PHP_SELF'],$pos+5);//вырежет только // имя исполняемого скрипта (например Lab10.php) echo "Имя исполняемого скрипта=".$str;
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //Например, DOCUMENT_ROOT= W:/home/localhost/www
$ndir="Users1";//имя создаваемой папки $FileName=$DOCUMENT_ROOT."/php/Lab/".$ndir."/users10.txt"; //$FileName=W:/home/localhost/www/php/Lab/Users1 if (!isset($_POST["Submit"]))://первая прорисовка формы
print("<form action=\"Lab10.php\" method=post> Name:<input type=text name=\"UserName\"><br> Password:<input type=password name=\"Password\"><br> <input type=submit name=\"Submit\" value=\"ok\"> </form>\n ");
echo "Введенная информация должна быть сохранена <br> в каталоге ".$ndir.", в файле users10.txt";
else: //форма ввода уже на экране и нажата OK
if ((strlen($_POST["UserName"])) and (strlen($_POST["Password"]))):
//&& и and - эквивалентны (логическое И) //echo("Если имя и пароль пользователя указан. Длина //имени пользователя=".strlen($_POST["UserName"]). //",Password=".strlen($_POST["Password"]));
$Check=WriteFile($_POST["UserName"],$_POST["Password"], $ndir,$FileName,$DOCUMENT_ROOT); if ($Check): print("<br>Ваша регистрация прошла успешно: <p>\n"); ReadFromFile($ndir,$FileName); else: print("<br>Регистрация не была выполнена <br>\n"); endif;
else: //при вводе что-то не указали print("Вернитесь и введите значения Alt+Left"); endif;
endif; ?> </body> </html>
<?PHP //функции пользователя function WriteFile($UserName,$Password,$ndir,$FileName,$DOCUMENT_ROOT) { //$UserName //$Password //$ndir - имя создаваемой папки. Например,$ndir="Users1" //$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //Например, DOCUMENT_ROOT= W:/home/localhost/www //$FileName=$DOCUMENT_ROOT."/php/Lab/".$ndir."/users10.txt"; // Назначение: // Создание папки $ndir по пути: // W:/home/localhost/www/php/Lab/$ndir // если она отсутствует, и создание файла $FileName для // добавления в него информации $UserName и $Password. // Если файл существует - только добавление информации. // В качестве разделителей значений атрибутов использовать // символы "\t".
echo '<br>Write Путь FileName='.$FileName.',<br> UserName='.$UserName.',Password='.$Password.',is_writeable='.is_writeable($FileName).' ='.gettype(is_writeable($FileName)).',<br>_SERVER[PHP_SELF]='.$_SERVER['PHP_SELF'].'<br>';
//Формирование пути для папки с именем $ndir $newdir=$DOCUMENT_ROOT."/php/Lab/".$ndir; $isdir = is_dir($newdir); // Возвращает TRUE if ($isdir== TRUE): //print "<br>Каталог //существует:".gettype($isdir).".isdir=".$isdir."<br>"; $nh=($isdir)? 'True': 'False'; echo '<br>Каталог '.$newdir.' уже существует isdir='.$nh; else: print "<br>Каталог '.$newdir.' Не существует."; $rs = @mkdir($newdir, '0777'); echo '<br>Каталог создан isdir='.($isdir)? 'True': 'False';
endif; //не забывайте точку с запятой if (is_writeable($newdir)): //Функция is_writeable($newdir)-сообщает, можно ли //записывать в newdir. Возвращает TRUE, если newdir //существует и является доступным (writable). $Open=fopen($FileName,"ab"); if ($Open): if (filesize($FileName)==0): echo '<br>Успешное создание и открытие файла';
else: echo '<br>Успешное открытие файла. Он уже существовал'; endif;
echo "<br>Файл $FileName доступен!<br> Размер файла=".filesize($FileName)." байт <br>";
$Password=md5($Password);//шифровка пароля
fwrite($Open,"$UserName \t $Password \n"); echo '<br>В файл Lab10.txt добавлена запись о пользователе <br> и его зашифрованном пароле.'; fclose($Open); $Directory=TRUE; else: print("Невозможно открыть файл $FileName<br>\n"); $Directory=FALSE; endif;//
else:
print("<br>В файл запрещена запись".$newdir); $Directory=FALSE; endif; //} //echo '<br>WriteTo return Directory='.$Directory;
return $Directory; }
function ReadFromFile($ndir,$FileName) {//Назначение // Чтение и вывод информации на экран //$ndir - имя папки (Например,$ndir="Users1") //$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //Например, DOCUMENT_ROOT= W:/home/localhost/www //$FileName=$DOCUMENT_ROOT."/php/Lab/users/users10.txt";
$Open=fopen($FileName,"rb"); //echo '<br>ReadFromFile Open='.$Open; if ($Open): $Data=file($FileName);//закачка файла в массив echo '<br>Число записей в файле='.count($Data).'<br>'; for ($n=0;$n<count($Data);$n++) { $GetLine=explode("\t",$Data[$n]); print("<b>$GetLine[0]</b> $GetLine[1] <br>\n"); } fclose($Open);// закрытие файла else: print("Невозможно открыть файл $FileName<br>\n"); endif; }//конец функции ReadFromFile ?> Рис. 3.157. Листинг скрипта с именем Lab10.php. Пусть пользователь заполнил форму следующим образом (рис. 3.158): Рис. 3.158. Заполненная форма для скрипта с именем Lab10.php.
Дата добавления: 2014-12-07; Просмотров: 389; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |