К основному контенту

Сообщения

Показаны сообщения с ярлыком "PHP"

.htaccess Ниндзя - Часть 2

Продолжая тему редиректа… Вложеный редирект 1:   RewriteEngine on 2:   RewriteCond $1 !^(index\.php|images|robots\.txt) 3:   RewriteRule ^(.*)$ /index.php/$1 [L] пояснения: руль в третьей строке выбирает всю строку ревнивой выборкой, оператором память вставляет вместо $1, [L] – это флаг который не относится к выражением, говорит о том, что при положительных результатах следующие правила не обрабатываются. Эксит вон.

Оптимизация CodeIgniter

   Оптимизация и без того быстрого CodeIgniter выглядит примерно так как на картинке. Это 1000 запросов за две с половиной секунды (кэширование и eAccelerator)

Какой PHP фреймворк выбрать, опыт программистов

Кто писал на symfony и пригляделись к CodeIgniter v1 и Zend Framework, выбирают Zend Framework для сложных проектов и CodeIgniter для простых проектов с небольшой посещаемостью и структурой. CodeIgniter 2 Кохана и Yii пока не актуальны и постоянно изменяются и улучшаются. Лично я пишу на CodeIgniter, но должен признаться изрядно изменил его структуру, только по этому не меняю его на другой. Если бы я заранее знал, что в Zend Framework архитектура более продуманна для запутанных задач и проектов, я бы выбрал Zend Framework. Точнее сказать блок схема Zend Framework раз в 5 больше чем в CI и выглядит более запутанно. Сгенерированную блок-схему я потерял, осталась только от CI. Интересный график в сравнении Kohana,  Cake, Cacke+eAccelerator, CodeIgniter, CodeIgniter + eAccelerator. ссылка на пост автора графика даю в конце статьи.

Проблема с кодировкой

BOM это не нужный блок вначале файла. в AkelPad редакторе есть функция сохранить в UTF

Организация структуры хранение данных сайтов

Интернет страницы состоят из HTML текста и Внешних файлов таких как скрипты, флеш, картинки, стили. Браузер сначала грузит HTML затем всё остальное. Внешние файлы для внешнего содержимого лучше организовать одну или несколько директорий. например \files\javascripts \files\images \files\styles иши javascripts images styles flash files ... если файлов много, то структуру можно усложнить обьединяя внешние ресурсы по основным признакам. например: текст или мультимедиа, системные или не системные. HTML файлы их можно хранить на сервере используя файловую систему, но большинство программистов предпочитают хранить их в базе данных с типом поля TEXT. База данных может хранить огромное колличество текстов. Если сайт разрастется то прийдется заплатить хостеру за расширение ресурсов. Структура базы данных HTML Строится методом деревьев. элемент дерева должен иметь поля с адресами предка и потомка.

SQL примеры создания таблиц

Создание таблиц с помощью SQL Пример создания таблицы для блога CREATE TABLE `lenauto_db`.`data` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `title` VARCHAR( 255 ) NOT NULL , `name` VARCHAR( 50 ) NOT NULL , `contents` TEXT NOT NULL ) ENGINE = MYISAM Пример создания названий 2 поля: id int autoincrement ключевой name varchar 255 CREATE TABLE `lenauto_db`.`cars` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `title` VARCHAR( 255 ) NOT NULL ) ENGINE = MYISAM Поля таблиц Заголовки `title` VARCHAR( 255 ) NOT NULL Имена  `name` VARCHAR( 50 ) NOT NULL Текст `contents` VARCHAR( 50 ) NOT NULL База данных для блогов лучше разделять большие объемы данных в отдельные таблицы: заголовки, автор, время таблица1 тексты постов таблица2 комментарии постов таблица3 1) таблица постов id not null primeri title null 128 varchar body null text Делаем две таблицы 2) таблица комментариев CREATE TABLE `lenauto_db`.`comments` ( `id` INT NOT NULL , `post_id` INT NULL , `author` VARCHAR( 50...

Проблемы с кодировкой Windows-1251 или UTF-8

Для решения проблем с кодировкой в корень сайта в файле .htaccess можно прописать кодировку по умолчанию. AddDefaultCharset UTF-8 или AddDefaultCharset Windows-1251 Некоторые заметки в Windows-1251 кодировке файлы меньше, Если на сервере по умолчанию UTF-8 кодировка, то сохраняйте, загружайте и редактируйте в этой же кодировке. Если вы используете API для ввода/вывода текста, например jQuery или Ajax, вам помогут эти знания: Существует - Входящая кодировка - Внутрянняя кодировка - Исходящая кодировка Внутренняя чаще не потдерживает Windows-1251, по этому до обработки лучше кодировать в UTF-8. Декодирование/декодирование PHP делает очень быстро, не создавая нагрузки.

Сравнение Yii и Codeigniter

Не люблю фреймворки и предпочитаю писать своими силами на PHP. А тем кто хочет использовать и ищет ответ на вопрос какой выбрать, может найти ответ здесь. Codeigniter, это продвинутый фреймворк (Школа языков высшего уровня), по этому его стоит использовать если вы решили граммотно построить сайт. Почти все остальные фреймворки страдают не граммотностью организации (Yii, CakePHP, Zend) самые ужасная организация на Cake и Zend. Разработчик Yii изучает codeigniter, его цель: выгодней написать код, но пока эти попытки плачевны и колличество ошибок говорит само за себя, не удивительно что для подражания он выбрал codeigniter. Запомните: нельзя сравнивать скорость выполнения задач различных фреймворков, значимое изменение скорости зависит от вашего кода в фреймворке. (оптимизация ядра фреймворка не приводит к значительному приросту скорости) Для оптимизации сайта используются прямые методы PHP.

Чем плох file_get_contents и использование

Самый весомы недостаток file_get_contents: у функции нет таймаута это приводит к частому подвисанию скриптов. хотя проблему можно решить кэшированием. еще недостаток обычно PHP.ini пишут allow_url_fopen=Off что запрещает обращаться к другим доменам. файл можно положить в корень хостера, либо обратиться с просьбой как включить. подробнее об использовании дальше

Weather - Google Погода на сайт

Самое полезное описание обработки XML   здесь можно обрабатывать результат запросов которые получают XML файл: http://www.google.com/ig/api?weather=Kiev,Ukraine http://www.google.com/ig/api?weather=Kyiv,Ukraine http://www.google.com/ig/api?weather=St-Petersburg,Russia http://www.google.com/ig/api?weather=Saint...tersburg,Russia http://www.google.com/ig/api?weather=Moskva,Russia http://www.google.com/ig/api?weather=Moscow,Russia на хабре обсуждается

Создание таблиц PHP и MySQL 02

существуют базы данных в которых могут храниться различное количество таблиц. покажу на примере нам нужно создать: 1) базу данных 2) таблицу создаем gamelist это просто. затем создаем таблицу products в моем примере 5 полей. и настраиваем параметры каждого поля. выбирайте тип таблицы обязательно тип MyISAM . иначе будут проблемы с кодировкой. id     тип:int                                             auto_increment   первичный title  тип:varchar   длинна:100   по_умолчанию:Untitled body   тип:text     price  тип:decimal   длинна:8,2   по_умолчанию:0.00 image  тип:varchar   длинна:50    по_умолчанию:nophoto.jpg price: это десятичное з...

Область видимости если ошибки с переменными

Использование global $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } в функции не будут видны переменные если они не обьявлены в функции как ссылки на глобальные переменные. нужно ссылкаться на глобальные global $a, $b; можно использовать массив $GLOBALS вот так $b=$GLOBALS["$a"]+$GLOBALS["$b"] есть суперглобальные функции global $HTTP_POST_VARS;echo $HTTP_POST_VARS['name'];// Суперглобальные переменные доступны в любой области// видимости и не требуют указания 'global'.// Суперглобальные переменные доступны, начиная с PHP 4.1.0echo $_POST['name'];

Карты Google

API Карт Google позволяет встраивать Карты Google на ваши веб-страницы по этой ссылке можно зарегестрировать карту и получить код для вашей страницы.

SMS

Сообщения отправляются по средствам отправки почты. например на почту киевскую : +38050{номер который введет чел}@sim.sim.com.ua где нет пробелов плюсов и тире. 38{номер оператора}{номер телефона}@sms.tatincom.ru... что то подобное узнать нужно у оператора

Include, подключение модулей PHP и поиск их в случаях ошибки

Include от require отличается тем что. require при возникновении ошибки прекращает работу. С помощью PHP.INI (файла конфигурации) в UNIX include_path=".:/php/includes" в Windows include_path=".;c:\php\includes" this should work in htaccess:php_value include_path = ".:/home/nick/includes/" С помощью .htaccess (для папки можно использовать): php_value include_path = ".:/home/nick/includes/" С помощью PHP ini_set('include_path', $_SERVER['DOCUMENT_ROOT'].'/include/library'); этот код для всех версий PHP старый вариант я не указал там чтото вроде set_include_path... вот функции на ru2.php.net

Настройка файла .htaccess для ошибки 404

чтобы настроить переадрисацию на свою страницу ошибок. во время ошибки "ненайден файл 404" Нужно на хостинге настроить ее вручную написав файл .htaccess в корне. либо в панели управления сайтом найти пункт Страницы ошибок, как я обычно делаю. и указать адрес вручную, советую указать полный адрес http://r.ru/404.html

.htaccess2

Синтаксис .htaccess - пути указываются от корня сервера. Пример: /opt/home/www.astanafoto.com/htdocs/config/.htpasswords - домены с указанием протокола Пример: Redirect / http://www.site.ru Файл имеет название именно 'точка' htaccess Должен быть записан в UNIX-формате. Для оболочки FAR, достигается F4 (редактирование файла), Shift+F2 (выбрать 'сохранить как UNIX-текст'). Запрет на все файлы: deny from all Где all обозначает 'все'. Разрешить доступ с определенного ip: В данном случае, <ваш ip> обозначает конкретный адрес. Например: order allow deny deny from all allow from 192.126.12.199 Запретить доступ с определенного ip: order allow deny deny from all deny from <ваш ip> Запрет на группу файлов по маске: <Files '\.(incsql...другие расширения...)$'> order allow,deny deny from all </Files> Определяет доступ к файлу по его расширению. Например запрет на доступ к файлам с расширениям 'inc' для веб-посетителей: <Files ...