Архив

Архив рубрики «php&»

Суперглобальный массив $_SERVER и функция getenv()

13 Сен 2010

$_SERVER – суперглобальный массив, который создается веб-сервером и содержит значения различных переменных окружения. Получить значения этих переменных можно в любом участке кода, обратившись к соответствующему элементу массива, или с помощью функции string getenv($varname);


// примеры получения ip-адреса клиента

$ip = $_SERVER['REMOTE_ADDR'];

$ip = getenv('REMOTE_ADDR');

REMOTE_ADDR – IP-адрес удаленного пользователя. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. В сети переменная вернёт IP-адрес клиента или последнего прокси-сервера, через который клиент попал на сервер. Если клиент использует прокси-сервер, узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR.

REMOTE_HOST – имя хоста удаленного пользователя

REQUEST_URI – uri текущей веб-страницы

HTTP_USER_AGENT – содержит информацию о типе и версии браузера и ОС посетителя.

DOCUMENT_ROOT – путь к корневой директории сервера

SERVER_NAME – имя веб-сервера

HTTP_HOST – содержание заголовка host, если он есть

HTTP_REFERER – содержит адрес предыдущей страницы, с которой был осуществлен переход на данную

Номер телефона с которого заходят на сайт может храниться в переменных:
HTTP_X_NETWORK_INFO
HTTP_MSISDN
HTTP_X_MSISDN
HTTP_X_UP_CALLING_LINE_ID

php ,

Сортировка массива объектов по полю объекта.

19 Ноя 2009

Задача: Отсортировать массив подобной структуры по текстовому полю tagname (в алфавитном порядке):


[0] => stdClass Object
   (
      [tag_id] => 39
      [tagname] => USA
      [tagmass] => 1
      [count] => 1431
   )

[1] => stdClass Object
   (
      [tag_id] => 151
      [tagname] => MySpace Codes
      [tagmass] => 1
      [count] => 319
   )
   …

Решение:


<?php

   function mySort($f1,$f2)
   {
      if($f1->tagname < $f2->tagname) return -1;
      elseif($f1->tagname > $f2->tagname) return 1;
      else return 0;
   }

   // uasort – сортирует массив, используя пользовательскую функцию mySort
   uasort($arr,"mySort");
   print_r($arr);

?>

php , ,

PHP загрузка файла для динамических данных

19 Окт 2009

     header("Content-type: application/octet-stream");
     header("Content-Disposition: attachment; filename=\"export.csv\" ");
     echo $content;

или


     header("Content-type: application/octet-stream");
     header("Content-Disposition: attachment; filename=\"export.csv\" ");
     readfile('export.csv');

Внимание:
Не помещайте никакой html код или другие данные, до вызова функции header()!

Данный код отобразит в браузере посетителя диалоговое окно, которое предлагает сохранить файл на компьютере или открыть его с помощью подходящего приложения.

Диалоговое окно сохранения файла

  1. Сообщаем браузеру, о типе содержимого страницы.
  2. Устанавливаем имя файла по умолчанию и заставляем браузер открыть диалоговое окно сохранения файла.
  3. Передаем данные для сохранения.
    Например, строка $content может содержать данные в формате csv файла:
    echo $content;
    Или читаем нужный файл и записываем его в буфер вывода таким образом:
    readfile(’export.csv’);

php , ,