Волшебные кавычки (Magic Quotes) и как с ними бороться.

26 Январь 2012 Нет комментариев
Функционал Волшебных кавычек (Magic Quotes) - перехватывать данные, которые получает скрипт (массивы $_POST, $_GET и т.д.) и экранировать в них специальные символы. Разработаны для защиты от хакерских атак вроде SQL Injection, но на практике от них больше проблем, чем пользы. Посмотреть текущие настройки можно с помощью phpinfo(). (если Magic Quotes включена, в разделе Configure Command будет строка --enable-magic-quotes).

Отключение Волшебных кавычек (Magic Quotes)

в .htaccess:
php_flag magic_quotes_gpc Off
в php.ini:
magic_quotes_gpc Off
Отключает Magic quotes для входящих данных из массивов GET/POST/Cookie. (далее...)

Как определить имя и директорию файла скрипта PHP который сейчас выполняется

24 Январь 2012 Нет комментариев
Для выстраивания правильных путей для подключения файлов в скриптах, которые тоже подключаются в PHP можно использовать волшебные константы:

__FILE__

Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла. Начиная с версии PHP 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в старых версиях в некоторых обстоятельствах возвращался относительный путь.

__DIR__

Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слэш, за исключением корневой директории (добавлена в PHP 5.3.0.)
Categories: PHP Tags: ,

Установка собственного шрифта на сайт

27 Декабрь 2011 Нет комментариев
Установка собственного шрифта на сайт. Иногда это приходится делать, и использовать для этого не стандартные шрифты. Чтобы их увидели не только вы но и посетитель сайта, этот шрифт как то надо закачать на компьютер посетителя, первый способ такой:
<style type="text/css"> p {font-family: URL шрифта (к примеру, www.ваш домен.ru/font.ttf) ;} </style>
второй вариант и более правильный вот такой:
<style> @font-face { font-family: mriam; src: url(http://ваш домен/font.ttf); } </style> <p style="font-family: название шрифта; font-size: 10px">текст</p>
Categories: HTML CSS JS, PHP Tags: ,

Усовершенствованный var_dump на php (dumphper)

27 Декабрь 2011 Нет комментариев
Усовершенствованный var_dump на php (dumphper) На просторах интернета отыскал очень удобный дампер, лучше чем стандартный var_dump. Собственно чем же он лучше, ну во-первых вся информация выводиться намного читабельнее, нет ограничения ко кол-ву символов, да и вообще все на много проще и удобнее. (далее...)
Categories: PHP Tags: , ,

CSV парсер на PHP

27 Декабрь 2011 Нет комментариев
csv парсер на php, очень простой и в некоторых случаях очень нужный скрипт. Написан был не мной, автору респект, надеюсь не обидится т.к. не помню исходной ссылки на сайт. Пользуйтесь. (далее...)
Categories: PHP Tags: , ,

Как корректно отправить письмо в php в кодировке UTF-8

20 Декабрь 2011 1 комментарий
Что делать, если стандартная функция php mail() отправляет письма в неверной кодировке. На самом деле она отправляет что дают и совершенно ничего не проверяет. Что же делать? Немного теории:
Тело письма может быть текстом в любой кодировке. Немного сложнее дело обстоит с составляющими заголовка письма (Subject, From, To), они по стандарту должны быть в US-ASCII. Использование в заголовках кодированного текста регламентируется стандартом RFC-2047. Стандарт задает две возможные формы кодирования - BASE64 и Quoted-Printable. BASE64 более универсальна и работает в том числе для кодировки UTF-8, поэтому мы будем использовать именно эту форму. MIME-совместимый почтовый клиент обязан уметь читать обе формы.
 И практика: Ниже приведен пример простой функции, которая отправляет в требуемой кодировке MIME-совместимые письма на русском языке в виде простого текста или в формате HTML (далее...)
Categories: PHP Tags: , , , ,

Как сделать редирект (перенаправление) в PHP, HTML, javascript и .htaccess

14 Декабрь 2011 1 комментарий
Ниже описаны способы сделать редирект (перенаправление) для каждого варианта.

Редирект PHP

Не забывать: До заголовка не должно выводиться никаких!!! символов. Частая проблема - пробел перед <?php в начале файла Следующий код работать не будет и даст варнинг:

Редирект HTML

  • content - значение указывает количество секунд до переадресации на адрес, указанный в поле url
  • url - адрес для редиректа. Туда и перенаправляем.

Редирект JavaScript

без комментариев... )) В продолжении - Редирект в .htaccess (далее...)

Простой способ выгрузки таблицы в excel из PHP

13 Декабрь 2011 6 comments
Если надо просто выгрузить некую таблицу с сайта как файл excel, то подойдет достаточно простой способ. Основная идея - excel уже давно умеет сохранять свои документы как html. Ну и самое простое решение - сохраняем любой документ именно так, открываем в текстовом редакторе, смотрим что и как там написано, пытаемся воспроизвести. Рассмотрим самый банальный пример: (запрос к базе данных не рассматривается... только та часть, которая выгрузит файл, понятный excel'ю. 1. Формируем заголовок: 2. Теперь можно выводить ранее полученные данные, из MySQL, из файла, еще откуда - не важно. все на ваше усмотрения. Главное НЕ забыть сформировать стандартную HTML шапку под правильную кодировку (например utf-8) что бы в excel корректно отображалась кириллица. И не забываем про то, что кодировка файла скрипта также должна быть такой же. 3. И вот формирование самой таблицы, которая откроется в Excel Код одним блоком внутри (далее). (далее...)
Categories: PHP Tags: , ,

Переопределение строковых функций в PHP (func_overload)

7 Декабрь 2011 Нет комментариев
использование вместо стандартных однобайтовых функций мультибайтовых (mbstring) функций. Настраивается в php.ini Полезно для работы сайта в кодировке utf8 По умолчанию выключено
; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ;mbstring.func_overload = 0
Раскомментируем выделенную строчку. Это битовый флаг, т.е. для агрегации значений надо складывать эти значения. Все варианты приведены ниже. (далее...)
Categories: PHP Tags: , , ,

Простая сортировка многомерных массивов в php

2 Декабрь 2011 Нет комментариев
Как отсортировать многомерный массив по какому-либо значению? Все достаточно просто. Подойдет функция usort(). Сортирует массив, используя пользовательскую функцию сравнения. Смотрим пример:
<?php function cmp($a, $b) { return strcmp($a["fruit"], $b["fruit"]); } $fruits[0]["fruit"] = "lemons"; $fruits[1]["fruit"] = "apples"; $fruits[2]["fruit"] = "grapes"; usort($fruits, "cmp"); while (list($key, $value) = each($fruits)) { echo "\$fruits[$key]: " . $value["fruit"] . "\n"; } ?>
и результат: И еще один пример функции сортировки: