Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типы суперглобальных массивов в PHP 5.




$GLOBALS – содержит ссылку на каждую переменную доступную в данный момент в глобальной области видимости скрипта.

$_GET, $_POST – переменные переданные методами GET или POST.

$_SESSION – переменные переданные скрипту через механизм сессий.

$_COOKIE – переменные переданные скрипту через cookie.

$_FILES – параметры файла передаваемые скрипту методом POST.

$_ENV – переменные окружения.

$_REQUEST – переменные передаваемые скрипту методами GET, POST и через cookie. Наличие и порядок включения переменных в этот массив определяются в соответствии с директивой variables_order.

$_SERVER – перменные установленные Web -сервером, либо напрямую связанные с окружением выпонения текущего скрипта.

$_SERVER ['REMOTE_ADDR'] - адрес с которого запросили страницу.

$_SERVER ['PHP_SELF'] – имя текущей страницы.

$_SERVER ['SERVER_NAME'] – имя сервера.

$_SERVER ['QUERY_STRING'] – строка запроса.

$_SERVER ['HTTP_REFERER'] – страница с которой зашел посетитель (передается пользовательским агентом).

$_SERVER ['HTTP_USER_AGENT'] – имя пользовательского агента (передается им же).

$_SERVER ['HTTP_ACCEPT_LANGUAGE'] – языковое предпочтение пользовательского агента, определяется по полю заголовка Accept-Language запроса к серверу.

Accept-Language: ru, en; q=o.7 - русский язык 70% предпочтения, английский - 30% предпочтения, q - снижение коэффициента предпочтения.

$_SERVER[`REQUEST_URI`] - содержит имя скрипта, начиная от корневой директории виртуального хоста и параметры, т.е. если строка запроса представляет собой адрес:

http://somesite.com/news/today.php?id=2&id_theme=23

то элемент $_SERVER[`REQUEST_URI`] будет содержать фрагмент «/news/today.php?id=2&id_theme=23″. Для того, чтобы узнать в скрипте полный адрес, который помещен в строку запроса, можно использовать следующую последовательность элементов массива $_SERVER:

<?php
$absURL = "http://".$_SERVER[`SERVER_NAME`].$_SERVER[`REQUEST_URI`];
?>

HTTP_X_FORWARDED_FOR – переменная окружения позволяющая иногда узнать адреса машин в подсети.

<?php
$subnet = getenv (HTTP_X_FORWARDED_FOR);
?>

16. Обращение к переменной из формы через суперглобальный массив $_POST.

21. Какие атрибуты используются для тега <form> и что они означают.

Синтаксис

FORM тэг определяет форму для заполнения в HTML документе. В одном документе может быть определено несколько форм для заполнения, но вложенные FORM операторы не разрешены. Формат оператора FORM выглядит следующим образом:

<FORM ACTION="url" METHOD="POST">...</FORM>

Его атрибуты следующие:

ACTION

URL сервера запросов, куда будет отослано содержание формы после подтверждения. Если это поле отсутствует, будет использован URL текущего документа.

METHOD

HTTP/1.0 метод используемый для посылки содержания заполненной формы на сервер. Этот метод зависит от того, как работает конкретный сервер запросов. Настоятельно рекомендуется использование метода POST. Возможные варианты следующие:

§ GET - это метод по умолчанию, который приводит к добавлению содержимого заполненной формы к URL, как и в нормальном запросе.

§ POST при использовании этого метода содержимое заполненной формы пересылается не как часть URL, а как содержимое тела запроса.

ENCTYPE

задает тип кодирования содержимого заполненной формы. Этот атрибут действует только когда используется метод POST и даже в этом случае имеет только одно возможное значение (которое является значением по умолчанию)- application/x-www-form-urlencoded.

Внутри FORM оператора может находиться все, что угодно, кроме другого оператора FORM. Согласно спецификации, для задания интерфейсных элементов внутри оператора FORM используются тэги INPUT,SELECT, и TEXTAREA.

Функция открытия файла.

Открытие файла:

$fp=fopen(“имя_файла”, “режим_открытия”,”….какой путь ….//….//имя_файла”)

24. Перечислите режимы открытия файла. Что означает следующая запись fopen(“test.txt”, w+);

Режимы открытия файла:

1) r – режим только чтения;

2) r+ – для чтения и записи (в этом режиме файл уже должен существовать);

3) w – запись с начала файла, если нет то создается или переписывается по новой;

4) w+ – запись и чтение;

5) a – режим добавления в конец (т.е. дописывает), если нет то создается;

6) a+ – запись и чтение;

7) b – бинарный (режим записи).

fopen(“test.txt”, w+); - эта запись означает, что открывающийся файл будет подвержен записи и чтению.

 

25. Перечислите режимы открытия файла. Что означает следующая запись fopen(“test.txt”, а+);

Аналогично предыдущему начало, но fopen(“test.txt”, a+); - будет означать, что тоже будет произведена запись и чтение.

 

26. Перечислите режимы открытия файла. Что означает следующая запись fopen(“test.txt”, w);

Аналогично предыдущему начало, но fopen(“test.txt”, w); - будет означать, что тоже будет произведена запись с начала файла, а если нет то создается новый или переписывается.

 

Напишите оператор, который проверяет, что файл с именем “test.txt” существует.

Ф-ция которая проверяет, что файл “test.txt” существует выглядит таким образом:

File_exists(“test.txt”)

<?php
myfile("test.txt"); // Используем функцию myfile, передав в качестве аргумента имя файла
function myfile($name) //Создаем функцию для проверки существования файла
{
if (file_exists($name)) echo 'Файл существует';
else echo "Файл не существует";}
?>

Смотреть от 25.09.2013 года

Функции закрытия и удаления файлов.

Закрытие файла

Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.

<?php
$fp = fopen("test.txt", "r");
if ($fp)
{
echo 'Файл открыт';
fclose($fp); // Закрытие файла
}
?>

Для удаления файла в PHP можно использовать функцию unlink. На примере простого скрипта, разберем работу unlink:
1. Создайте текстовый файл в текстовом редакторе (vi/vim, nano, gedit или просто в стандартном Блокноте).
2. Наберите или просто скопируйте в него следующий код:

<?php
$file="example.log";
unlink($file);
?>
3. Сохраните (к примеру под именем testunlink.php) и разместите созданный файл скрипта на вашем тестовом web-сервере. В этом же каталоге создайте файл example.log с любым содержимым. Именно его мы и будем удалять.
4. Запустите скрипт, вызвав его в браузере, и, посмотрев вновь в каталог, вы обнаружите, что файла example.log там больше нет. Unlink сделал свое дело!
Как это все работает:
Первая строка кода скрипта: определяем тип нашего скрипта.
Вторая строка кода: После запуска созданного нами скрипта, переменной file будет присвоено значениеexample.log (обратите внимание, что файл с одноименным названием должен присутствовать в том же каталоге, что и созданный нами скрипт. Просто создайте его с любым содержимым!).
Третья строка кода: Удаляем файл example.log, передав его в качестве аргумента функции unlink. Четвертая строка кода скрипта: конец кода php.

29. Функции для записи информации в файл. Написать оператор, который записывает в файл информацию из переменной $var длиной 250 байт.

Fwrite

(PHP 3, PHP 4, PHP 5) fwrite($fp,$var[,250])

fwrite -- Бинарно-безопасная запись в файл

Описание

int fwrite (resource handle, string string [, int length])

fwrite() записывает содержимое string в файловый поток handle. Если передан аргумент length, запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string, смотря что произойдёт первым.

fwrite() возвращает количество записанных байтов или FALSE в случае ошибки.

Обратите внимание, что если аргумент length указан, то конфигурационная опция magic_quotes_runtime будет проигнорирована и строка string не будет очищена от слешей.

Замечание: В системах, различающих двоичные и текстовые файлы (к примеру, Windows), файл должен быть открыт используя флаг 'b' в конце аргумента mode функции fopen().

  Пример 1. Простой пример использования fwrite
<?php $filename = 'test.txt'; $somecontent = "Добавить это к файлу\n"; // Вначале давайте убедимся, что файл существует и доступен для записи. if (is_writable($filename)) { // В нашем примере мы открываем $filename в режиме "дописать в конец". // Таким образом, смещение установлено в конец файла и // наш $somecontent допишется в конец при использовании fwrite(). if (!$handle = fopen($filename, 'a')) { echo "Не могу открыть файл ($filename)"; exit; } // Записываем $somecontent в наш открытый файл. if (fwrite($handle, $somecontent) === FALSE) { echo "Не могу произвести запись в файл ($filename)"; exit; } echo "Ура! Записали ($somecontent) в файл ($filename)"; fclose($handle); } else { echo "Файл $filename недоступен для записи"; }?>

Чтение и запись в текстовый файл казалось бы простейшая операция. Блокировал, открыл, записал, закрыл, снял блокировку с файла. Однако просто это только на первый взгляд….

Давайте подумаем, что произойдет, если к одному и тому же файлу одновременно обратятся несколько процессов, с целью записать туда какую-либо информацию? Могу сразу ответить: часть, либо вся информация, хранящаяся в файле будет безвозвратно потеряна. И просто блокировкой файла здесь не обойтись.

Такая задача встала передо мной при написании скрипта каталога для обмена ссылками LinkExchanger. Информация там должна была храниться именно в файлах. В итоге получилась вот такая функция, код которой приведен ниже…

  function WriteToFile ($path_to_file,$data) {
  $lock = fopen(PATH_BLOCKFILE,"a");

 

  if(flock($lock, LOCK_EX)) {
  $tmp=fopen(PATH_TEMPFILE,"w");

 

  for($i=0;$i<count($data);$i++) {
  fputs($tmp, "$data[$i]\n");

 

  }
  fclose($tmp);

 

  unlink("$path_to_file");
  rename(PATH_TEMPFILE, "$path_to_file");

 

  flock($lock, LOCK_UN);
  fclose($lock);

 

  }
  }

Давайте разберем очень подробно, как это работает.
Функция WriteToFile принимает два аргумента: путь к файлу, в который будет записана информация и собственно информация, представленная в виде массива. Нам понадобятся еще два файла, пути к которым определяются константами PATH_BLOCKFILE и PATH_TEMPFILE. Собственно из названий понятно, что первый – это некий блокирующий файл, а второй – файл для временного хранения информации.

Первое, что мы делаем – открываем на запись блокирующий файл. Далее ставим на него блокировку, и если эта операция прошла успешно, открываем на запись временный файл, в который и пишем нашу информацию.
Закрываем временный файл, удаляем исходный файл и переименовываем временный файл, давая ему имя исходного. Далее снимаем блокировку с блокирующего файла и закрываем его.
Это все. Проверено годами работы в условиях массового использования и на самых различных хостингах.
Единственное, за чем надо следить, чтобы при добавлении информации не было превышено допустимое дисковое пространство.

File_put_contents(“имя_файла”, строка кот записывается) – запись в файл

fwrite($fp, $var [,250])

Функции чтения из файла.

File_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — Читает все содержимое файла и выдает результат в виде строки

Прим. переводчика. На базе этой функции часто строятся простейшие HTML-парсеры. Т.е. указывается URL нужной HTML страницы.
Функция возвращает страницу в виде строки, которую по HTML-тегам обрабатывает парсер.

Описание

string file_get_contents (string $filename [, int $flags = 0 [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]])

Эта функция аналогична функции file(). Отличие заключается в том, что функция file_get_contents() возвращает файл в виде строки, которая начинается с заданного смещения ( offset ) и ограничивается максимальной длиной maxlen , задаваемой в байтах. В случае ошибки функция file_get_contents() возвращает FALSE .

file_get_contents() это лучший способ получать содержимое файла в виде строки. Для повышения быстродействия функция, если это позволяет делать операционная система, использует технологию memory mapping techniques.

Примечание: Если Вы открываете URI, содержащий специальные символы (например пробелы), Вам надо кодировать URI с помощью функции urlencode().

Примечание: Значение по умолчанию параметра maxlen не равно -1. По умолчанию значение этого параметра равно внутренней константе PHP, которая означает копировать все содержимое файла пока не встретится символ "конец файла". Если Вы хотите получить все содержимое файла, просто не используйте этот параметр.

Параметры

filename

Имя файла, который надо прочитать.

flags

Примечание: До версии PHP 6, этот параметр называется use_include_path , тип данных bool. Как и в PHP 5 параметр FILE_USE_INCLUDE_PATH может использоваться для указания, надо ли выполнять поиск в каталогах include path.

Значение параметра flags может быть представлено как комбинация следующих флагов (с некоторыми ограничениями), объединенных бинарной операцией И (|)

Возможные значения параметра flags
значение описание
FILE_USE_INCLUDE_PATH Искать filename в каталогах, описанных в параметре include_path.
FILE_TEXT В PHP 6 кодировка файла по умолчанию установлена в UTF-8. Вы можете задать другую кодировку, создав пользовательский контекст (custom context) или используяstream_default_encoding(). Этот флаг не может использоваться с флагом (FILE_BINARY).
FILE_BINARY Если этот флаг установлен, то файл будет прочитан в бинарном режиме. Это значение установлено по умолчанию и не может использоваться совместно с флагом FILE_TEXT.

context

Ресурс контекста (context resource) создается при помощи функции stream_context_create(). Если Вам не нужен пользовательский контекст (custom context), просто пропустите этот параметр, установив NULL .

offset

Это смещение, с которого должно начаться чтение файла.

maxlen

Максимальная длина данных, которые надо прочитать. Если значение не задано, файл будет прочитан до конца.

Возвращаемое значение

Функция возвращает прочитанные данные или FALSE в случае ошибки.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...