» » PHP статьи
Опрос
Вы занимаетесь разработкой сайтов?

Проверка IP-адреса по маске подсети в массиве php

Автор: administrator Дата: 30-12-2018, 11:38 Категория: Статьи и уроки / PHP статьи
Наверняка перед многими web-мастерами вставала задача — определить по маске подсети вхождение IP-адреса посетителя сайта. Цели при этом могут быть разными: выдать содержимое на странице в зависимости от географической принадлежности посетителя (что арабу хорошо, то еврею смерть), заблокировать доступ к сайту по IP… Впрочем, блокировать доступ к сайту удобнее с помощью файла .htaccess.

В общем, однажды подобная задача встала и передо мной — нужно было телефон на странице выводить в зависимости от страны посетителя сайта. Хождение по Google мало что дало. На многих блогах и форумах я находил какие-то обрезки php-скриптов, в большинстве своем не работающие. А если и попадались работающие скрипты, то проверка производилась только по одному диапазону IP-адресов. Пришлось писать свой php-код, коим и хочу поделиться...
Просмотров: 633 Комментариев: 0
  • 0

PHP: Полезные мелочи

Автор: administrator Дата: 3-11-2018, 22:19 Категория: Статьи и уроки / PHP статьи

Полезные, но уже устаревшие некоторые функции в php:


  • Яндекс тИЦ
  • Яндекс число страниц в индексе
  • Веб прокси
  • LiveInternet статистика
  • Число подписчиков в FeedBurner
  • Выводим Alexa Rank
Просмотров: 242 Комментариев: 0
  • 0

Парсим скриншот сайта - PHP скрипт

Автор: administrator Дата: 8-09-2018, 17:38 Категория: Статьи и уроки / PHP статьи
В данной статье опишем как работает скрипт для создания скриншота любой страницы в интернете.
Скриншот сайта это небольшая картинка, которая позволяет пользователю не заходя на сайт увидеть как тот выглядит. Скрипт будет полезен если ваш сайт занимается рекламированием других сайтов, например "Яндекс.Каталог" зайдите в любой раздел и вы увидите возле каждого сайта небольшую картинку того сайта которого рекламирует яндекс.

Функция будет работать следующим образом:

<?php function(адрес страницы, разрешение, размер, формат); ?>
Просмотров: 604 Комментариев: 0
  • 0

Как определить запрос из tor-сети

Автор: administrator Дата: 24-08-2018, 21:25 Категория: Статьи и уроки / PHP статьи
Для определения ip-адреса из tor-сетки можно послать запрос для A-записи, вида
<reversed ip>.<port>.<addr>.ip-port.exitlist.torproject.org
Где: reversed ip - целевой ip в DNS PTR виде (перевернутый) port - порт, на который стучится запрос от целевого адреса addr - ip-адрес, на который стучится целевой адрес Например, если мы проверяем ip 30.1.234.50, который долбится на адрес 80.10.200.30 на порт 80, то наш конечный запрос на проверку будет выглядеть так: 50.234.1.30.80.80.10.200.30.ip-port.exitlist.torproject.org В итоге, если конечный запрос долбится с tor сетки через целевой ip на определенный порт на определенный адрес, то в указанном запросе нам вернется 127.0.0.2. В противном случае вернется nxdomain.
Просмотров: 587 Комментариев: 0
  • 0

PHP: «Умная» проверка URL-адреса

Автор: administrator Дата: 8-08-2018, 21:54 Категория: Статьи и уроки / PHP статьи
Довольно часто встречаются ситуации, когда нужно проверить на корректность URL-адрес, введенный пользователем. При этом, хорошо было бы не обременять самого пользователя вводом протокола http/https, но предоставить ему такую возможность.

То есть, «правильным» должен считаться, как URL, вида http://example.com/, так и example.com. В случае, если протокол не был указан, по умолчанию к конечному значению добавляется http://.

Создадим функцию parse_url_if_valid, которая будет принимать «сырую» строку URL, и возвращать корректный URL в том случае, если его удалось привести к должному виду. В противном случае, функция будет возвращать значение null.

В PHP есть встроенная функция parse_url, которая разбирает URL-адрес и возвращает массив с его компонентами. Воспользуемся ей для облегчения задачи и уменьшения количества рутинных операций.
Просмотров: 546 Комментариев: 0
  • 0

PHP: блокировка доступа к файлу. Контроль доступа во время выполнения

Автор: administrator Дата: 30-04-2018, 21:19 Категория: Статьи и уроки / PHP статьи

Блокировка файлов с ожиданием

При осуществлении файловых операций нужно учитывать возможность их параллельного выполнения. С одним и тем же файлом могут взаимодействовать различные процессы. Одни выполняют чтение, а другие записывают данные. Некоторые задачи, решаемые в PHP, требуют явного контроля над таким поведением. Например, если в настоящий момент происходит запись в файл, нужно подождать его завершения перед началом чтения. Таким образом, пользователь будет получать актуальную информацию о содержимом.
PHP имеет встроенный механизм блокировки доступа к файлам. Он реализует консультативную модель (англ. advisory locking). Это означает, что все программы, работающие с файлом, должны реализовывать один и тот же способ проверки и использования блокировок. Иначе они не будут работать.
Блокировки доступа бывают двух типов: монопольная — другие процессы не могут записывать и читать данные пока не будет снята блокировка, совместная — все процессы могут читать, но не записывать.
Для блокировки файла используйте функцию flock(). В первом параметре она принимает дескриптор файла, а во втором указывается тип блокировки. Тип можно задать с помощью встроенных констант LOCK_SH(совместная) или LOCK_EX (монопольная). Функция возвращает true в случае захвата файла или false, если произошла ошибка. flock() также отвечает и за снятие блокировки. Для этого передайте ей дескриптор файла, а во втором параметре укажите константу LOCK_UN.
Просмотров: 1 012 Комментариев: 0
  • 0

PHP: загрузка файлов. Обработка и сохранение присланных данных.

Автор: administrator Дата: 30-04-2018, 21:12 Категория: Статьи и уроки / PHP статьи

Принципы загрузки файлов

Загрузка файла на сервер может быть выполнена как с помощью веб-формы, расположенной на странице сайта, так и прямым программным запросом. Для PHP-интерпретатора способ передачи файла не имеет значения. Спецификация HTTP-протокола приводит эти операции к единообразному виду.
Любой загружаемый файл будет помещен в специальную директорию для временного хранения, а связанная с ним информация добавлена в суперглобальный массив $_FILES. Если не переместить файл в другое место, после завершения скрипта произойдет его бесследное удаление. Директория временного хранения определяется настройкой upload_tmp_dir конфигурационного файла php.ini...
Просмотров: 650 Комментариев: 0
  • 0

PHP: права доступа к файлам. Установить их или получить значение.

Автор: administrator Дата: 29-04-2018, 19:11 Категория: Статьи и уроки / PHP статьи

Введение в права доступа

Операционные системы имеют различные политики контроля доступа к файлам. PHP не может влиять на них прямым образом. Однако интерпретатор обрабатывает системные сообщения. Например, при выполнении какой-либо операции с файлом, на которую у вас нет прав, встроенные функции перехватывают ошибки и возвращают false.
Для построения WEB-сервисов в основном используются операционные системы Linux и Windows. Их политики контроля доступа совершенно не совместимы. Тем не менее, список файловых операций остается неизменным: создание, чтение, изменение, удаление и запуск исполняемых программ. PHP имеет ряд встроенных функций, самостоятельно определяющих тип операционной системы и вычисляющих доступность прав.
Заметка!
В зависимости от логики приложения может возникнуть потребность проверки прав доступа к файлу до осуществления операции. Это позволит явным образом контролировать поведение программы, а не дожидаться ошибок.

Просмотров: 693 Комментариев: 0
  • 0

Запись данных в файл. Функции PHP, отвечающие за эту операцию.

Автор: administrator Дата: 29-04-2018, 18:43 Категория: Статьи и уроки / PHP статьи

Запись данных целиком

Довольно часто требуется записать информацию в файл за один раз, без открытия дескриптора и построчной обработки данных. В PHP специально для решения этой задачи есть функция file_put_contents(). Её первый параметр принимает путь до файла, а второй — строку, предназначенную для записи.
Если файл на момент вызова не существует, он будет создан. Однако для осуществления этой операции нужны права, позволяющие создавать файлы в указанной директории. Обратите внимание на то, что данная функция перед осуществлением записи затирает всё содержимое файла.
Перезаписывание файла можно отменить за счет третьего необязательного параметра. Он принимает три вида флагов, которые могут быть объединены с помощью побитового оператора «или», записываемого как вертикальная черта «|»...
Просмотров: 690 Комментариев: 0
  • 0

PHP: Создание файла. Использование временных файлов

Автор: administrator Дата: 29-04-2018, 18:01 Категория: Статьи и уроки / PHP статьи

Простое создание файла

Нужно отметить, что в PHP есть несколько способов создания файлов. Каждый из них имеет свои особенности и используется для решения различных задач.
Самым простым способом является использование функции touch(). Она применяется для установки времени последнего доступа к файлу. Если файл не существует, touch() создаст его. Принцип работы очень прост. Функция принимает три параметра: имя файла, время касания и время доступа в формате timestamp. Параметры времени являются необязательными...
Просмотров: 558 Комментариев: 0
  • 0