Категории: PHP

Программирование на PHP. Избавляемся от рутинных операций с помощью Phing

Владимир | | Phing, PHP, Web разработка.

Логотип статьи о Phing

В этой статье я хочу рассказать об инструменте, который может значительно сэкономить ваше время и защитить от механических ошибок. Этот инструмент очень часто применяется при разработке крупных проектов профессиональными командами. Но в этой статье я постараюсь показать, что он пригодится и при самостоятельной разработке небольших web приложений.

Речь, конечно, пойдет о Phing. Он позволяет автоматизировать большинство рутинных операций, с которыми вы можете столкнуться во время разработки.

Принцип работы следующий. Вы создаете xml файл, в который записываете необходимые группы действия (о синтаксисе этого файла немного ниже), после этого вы сможете выполнить любую группу действий всего одной командой. Т.е., по большому счету, phing можно считать «продвинутой» версией командных файлов.
Читать дальше

PHP mail под Windows. Отправка почты из PHP скриптов

Владимир | | PHP, Web разработка.

В этой статье я хочу рассказать об отправке почты из php скриптов под Windows.

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail().

И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line ......
Читать дальше

Как создать облако тегов для своего сайта на PHP

Владимир | | CodeIgniter, HTML, PHP, Web разработка.

Облако тегов

В этой статье я расскажу и, естественно, покажу пример создания облака тегов для сайта (блога). Основные инструменты – PHP и фреймворк CodeIgniter (подойдет любой другой).

Но, прежде всего, хочу поблагодарить Delchyve за идею.

Итак, переходим к делу.

Вы, конечно, знаете, что облако тегов используется на многих сайтах (в основном это блоги) как элемент навигации. По-сути, облако тегов – это набор ссылок с ключевыми словами, рядом с которыми обычно пишут количество постов, которые относятся к данному тегу.

Чтобы сфокусировать внимание посетителя на наиболее актуальных темах, размер шрифта тегов в облаке меняют в зависимости от количества постов, которые к нему относятся.

Если ваш сайт (блог) использует какую-нибудь CMS, например, WordPress, Joomla и т.п., то вы без труда найдете плагины, которые сами создадут облако тегов на основе ваших данных, а вам останется только разместить его в шаблоне сайта.

Но мы рассмотрим ситуацию, когда сайт пишется «с нуля» и вам нужно сформировать облако ручками 🙂 .
Читать дальше

PHP скрипт. Simple URL Checker — запуск проверок по расписанию

Владимир | | CodeIgniter, PHP, Web разработка.

Simple URL Checker - CRON
Приветствую всех!

Это заключительная статья о разработке web приложения, выполняющего проверку URL.

Примечание. Ссылки на предыдущие статьи этого цикла вы найдете здесь.

На данный момент у нас уже есть работоспособное приложение. Но запускать проверки мы можем только с помощью web интерфейса.

Естественно, гораздо удобнее выполнять проверки по расписанию, а потом периодически просматривать результаты.

И вот здесь возникает проблема. Мы не можем из командной строки вызвать метод ping, т.к. для этого нужно создать экземпляр класса контроллера (Main) и заодно инициализировать ядро фреймворка.

Вообще при работе с CodeIgniter все запросы отправляются скрипту index.php, а уже он в зависимости от полученных параметров инициализирует объекты и вызывает нужные методы.

Проблему можно решить несколькими способами.
Читать дальше

PHP скрипт. Simple URL Checker — создание представлений

Владимир | | CodeIgniter, CSS, PHP, Web разработка.

Simple Url Checker - views
Приветствую!

Сегодня мы продолжаем разработку web приложения, выполняющего проверку URL. На данном этапе чтобы получить работоспособное приложение нам осталось только создать представления.

Примечание. Ссылки на предыдущие статьи этого цикла вы найдете здесь.

Наше приложение содержит всего две страницы. Главную со сведениями обо всех выполненных проверках, и страницу с подробной информацией по конкретному URL. В принципе, нам достаточно двух представлений. Но заголовок и «хвостовик» страницы повторяются, поэтому мы создадим для них отдельные представления.

Все файлы представлений должны находиться в папке application/views/.

Рассмотрим их подробнее.
Читать дальше

PHP скрипт. Simple URL checker — выполнение проверок (cURL)

Владимир | | PHP, Web разработка.

Simple URL checker - cURL
Приветствую всех!

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

Чтобы немного облегчить себе жизнь, проверки мы будем выполнять с помощью библиотеки cURL.

Эта библиотека предоставляет очень широкие возможности для работы с web ресурсами. Поддерживаются редиректы, отправка данных, установка заголовков, автоматически собирается статистика и многое другое. Естественно, все возможности гибко настраиваются. В общем, при желании можно полностью имитировать работу человека в интернете.

Теперь нам нужно подключить эту библиотеку к PHP. Для этого в файле php.ini нужно убрать «;» в начале строки extension=php_curl.dll. После этого в сведениях, которые возвращает функция phpinfo() появится раздел curl и в нем параметр — cURL support: enabled.

Библиотека подключена и можно начинать ее использовать.

Для начала приведу небольшой пример, иллюстрирующий основные принципы работы с библиотекой на PHP.
Читать дальше

PHP скрипт. Simple URL checker — контроллер

Владимир | | CodeIgniter, PHP, Web разработка.

Simple URL checker - контроллер
Сегодня я продолжу рассказ о разработке web приложения, выполняющего проверку URL.

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

Примечание. Ссылки на все предыдущие статьи находятся здесь.

Теперь самое время заняться контроллером.

Т.к. приложение довольно простое нам вполне хватит одного контроллера, назовем его main. Кстати, при настройке CodeIgniter в файле routes.php мы указали, что этот контроллер должен загружаться по-умолчанию.

Со структурой приложения и его функциями мы уже определились, переходим к написанию методов контроллера.
Читать дальше

Разработка web приложения для проверки URL (структура)

Владимир | | CodeIgniter, PHP, Web разработка.

Логотип
В прошлый раз я начал рассказывать о разработке небольшого web приложения, выполняющего проверку доступности сайтов. Мы уже определились с требованиями к этому приложению (составили перечень функций) и библиотеками, которые будем использовать.

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

Итак, структура приложения.

Исходя из перечня функций, нам хватит двух страниц.

Главной (mainpage) – здесь будет размещена таблица с краткой информацией о результатах проверок, ссылки «Удалить» для каждого URL, форма добавления нового URL и кнопка «Пинговать все!», запускающая одновременную проверку всех URL.

Страницы со сведениями по выбранному URL (urldetails). Здесь будет таблица с подробной информацией о результатах проверок (время/дата, результат, размер полученной страницы, время и скорость загрузки). Кроме того, мы добавим ссылки для удаления любого из результатов и кнопу «Пинг».

Посмотреть как выглядят эти страницы можно на скриншотах.
Читать дальше

Разработка web приложения для проверки URL на PHP

Владимир | | PHP, Web разработка.

Simple URL checker
Приветствую всех читателей!

Эта статья открывает небольшой цикл о создании web приложения, предназначенного для проверки доступности сайта.

Конечно, выяснить доступен сайт или нет можно, просто набрав адрес сайта в строке браузера, но если такие проверки нужно проводить регулярно, то стоит автоматизировать процесс. Кроме того, наше приложение сможет собирать данные о нескольких сайтах и показывать статистику (скорость загрузки, размер страницы и т.п.). Назовем его – Simple URL checker.

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

1) возможность добавлять / удалять URL сайтов;
2) просмотр статистики по всем URL;
3) просмотр результатов проверок выбранного URL;
4) удаление отдельных результатов проверок;
5) проверка всех URL одновременно и каждого отдельно;
6) запуск проверок из консоли (поддержка cron).

Web приложение напишем на PHP, из дополнительных библиотек будем использовать библиотеку cURL и фреймворк – CodeIgniter.

Примечание. Вообще-то первоначально я думал написать просто пост с небольшим примером работы cURL, но этот пример быстро перерос в полнофункциональное web приложение 🙂 . Надеюсь, оно кому-нибудь пригодится.

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

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

Оглавление.

1) Структура приложения и базы данных
2) Создание моделей для работы с БД
3) Добавляем контроллер
4) Подключаем cURL
5) Создаем страницы
6) Запускаем проверки по-расписанию

Скачать

Архив с приложением (24 кБ)
В архиве находится папка system/application с приложением, файлы simpleurl.sql, cron_cli.php и install.txt с инструкциями по установке.

До встречи!

Как «спрятать» внешние ссылки. Небольшой PHP скрипт

Владимир | | htaccess, PHP, SEO.

Маскировка ссылок

Эта статья об одном из довольно распространенных способов маскировки внешних ссылок (по-английски – link cloaking).

Работает link cloaking следующим образом. Просматривая страницу, посетитель видит обычную внутреннюю ссылку. Но, после перехода по ней – попадает на другой сайт.

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

Идея заключается в использовании редиректа и реализуется в два этапа:
Читать дальше