tushov.ru

блог php-программиста, преподавателя и конcультанта

Category: PHP

Page 1/2

PHP, Курс веб-программирования

pishikod.ru — обучение веб-программированию на PHP

Разрешите представить Вам мой новый проект онлайн-обучения программированию на языке PHPpishikod.ru

Теперь всё что касается обучения программированию будет именно на нём. Здесь я, если и буду публиковать что-либо на тему обучения, то только рекламного характера. Потому добро пожаловать на pishikod.ru — проект обучения программированию на PHP по простым и понятным пошаговым статьям с самостоятельными заданиями, а также моей бесплатной обратной связью в комментариях к каждой статье!

Также, практически, в любой социальной сети Вы сможете найти официальные аккаунты и страницы проекта по слову: pishikod или универсальному хэш-тегу: #pishikod

 

PHP, Заметки программиста

Как скачать файл доступный по протоколу HTTPS используя CURL

Существует проблема копирования (скачивания) файлов из сети, доступных по протоколу HTTPS через такие простые функции как copy(), file_get_contents и т.д. Не с первого раза нашел информацию по вопросу использования CURL’а для скачивания по протоколу HTTPS. И вот что получилось:

Строки:

необходимы при работе на Windows-машине.

PHP, Заметки программиста, Найдено в Интернете

Переводим большой html-текст через Google Translate на PHP

Недавно в одном проекте потребовалось реализовать функционал перевода html-текста на разные языки. Сразу же на ум пришёл машинный перевод при помощи translate.google.ru. Все бы ничего если бы не два НО, которые встали на пути:

  1. Google Translate не позволяет переводить за раз текст размером более 5000 символов
  2. Google Translate переводит вместе с текстом и HTML-теги
  3. Если резать текст на кусочки размером до 5 000 символов, то незакрытые HTML-теги в кусках Google Translate удалит

Немного поковырявшись во всем этом удалось получить более менее рабочее решение, а именно 2-е функции: translate — собственно функция перевода (найдено в Интернете), googleTranslate — функция корректной обрезки больших текстов на кусочки по 5 000 с учетом не проблемы не закрытых тегов.

Итак, если еще кому-то пригодится, собственно сам код:

 

PHP

Ручной антивирусник на PHP =)

Многие наверное слышали про повальное заражение сайтов своеобразным вирусом.  Смысл вируса простой — в каждый index.php (index.html) файл на сервер, где лежит сайт вставляется вредоносный JavaScript-код http://addonrock.ru/Raw_Data.js Код вставляется иногда очень тупо, вызывает error’ы или если у вас display_errors = off то превращает сайты в белые простынки :). Основная заявленная в Интернете причина уязвимости состоит не в уязвимости сервера и не в дырке в CMS, которую вы используете, а именно  в присутствии трояна на вашем компьютере с которого вы осуществляете доступ по FTP к серверу где лежит ваш сайт. Троян похищает пароли к FTP, ну а далее просто патчит JS-вставками все index.* файлы на сервере.

Лечится все это просто, удаляются эти самые JS-вставки кода и все дела. Вот только если файлов на сервере несколько тысяч как например в Joomla и вы вносили исправления и не имеете актуальной зеркальной копии сайта — проблема становится более ощутимой.

Предлагаю свое решение, которым я пользовался для устранение в отдельных случаях вредоносного кода из index.* файлов на сервере. Просто положите в корневую директорию сайта файл antivirus.php, запустите скрипт и увидите анализ всех файлов на предмет присутствия в них JS-вставок кода. Внимательно нажимая на ссылку Лечить напротив нужных файлов удалите все вставки вредоносного кода.  Вот собственно и все.

Самое главное — не забудьте сменить пароль к FTP после излечения всех файлов. И не храните пароли к FTP в программах (FTP-манагерах особенно аля TotalCommander).

Скачать antivirus.zip

PHP

DABackuper — автоматический бэкап по расписанию для DirectAdmin-панели

DABackuper — решение для тех кто хотел бы регулярно (по своему расписанию) и в автоматическом режиме (CRON) создавать бэкапы на сервере через доступ к DirectAdmin-панели. Итак, если на вашем хостинге есть DirectAdmin и вы хотели бы настроить автоматическое резервное копирование, то данный php-скрипт под названием DABackuper может вполне сгодиться. Скрипт я писал как раз для себя, тестировал на своем хостинге, результаты тестирования показали что все работает и теперь каждый день у меня в автоматическом режиме происходит резервное копирование. Итак, код скрипта DABackuper:

Не забудьте вписать свои данные (настройки для панели DirectAdmin). Учитывайте также что массив $post — это данные для моего хостинга, потому для настройки я бы советовал вам сначала расскомментировать строку:

и запустить скрипт в браузере, выбрать нужные опции соответствующие настройкам именно вашего хостинга и вашим предпочтениям, а дальше просто нажав на кнопку «Создать Резервную Копию» вы увидите именно ваши настройки, эти настройки необходимо будет вписать в массив $post.

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

Joomla, PHP

Реализация AJAX-модулей в Joomla 1.5

В Joomla 1.5.x AJAX-запросы внутри компонентов можно посылать через специальный файл index2.php — отличие которого от стандартного состоит в том что он не загружает шаблон Joomla, а только выводит содиржимое сгенерированное непосредственно компонентом. Т.е. к примеру запрос вида http://ваш_сайт/index2.php?option=com_frontpage — покажет на странице «чистый» вывод компонента com_frontpage. Такого  рода запросы очень удобны при реализации AJAX-вызовов в компонентах. Однако маршрута вызова исполнения и вывода конкретного модуля в Joomla увы не предусмотрено. На данный момент есть различные методы реализации AJAX-вызовов модулей в Joomla как правило за счет специальных плагинов или компонент обрабатывающие AJAX-запросы. На мой взгляд модуль  должен быть самодостаточным (автономным) и по возможности не требовать установки каких-либо компонент или плагинов реализующих проброс AJAX-запросов к нему. Для того чтобы не терять возможности API Jooml’ы и не городить каждый раз какой-то особый функционал для AJAX-модулей, я сделал простое решение для себя:
в своих модулях в которых используются AJAX-вызовы я просто использую сделанный мной файл ajax.php, следующего содержания:

все AJAX-запросы идут как раз таки на этот файл ajax.php, лежащий внутри папки модуля.
а уже обработкой AJAX-запросов и ответов занимается сам файл модуля. Таким образом создавая очередной модуль использующий AJAX я просто кидаю в папку с ним этот файл ajax.php и делаю что хочу внутри этого модуля.
Таким образом сохраняется автономность самого модуля, при этом вам не надо править что-то в файле ajax.php, он одинаковый для всех таких модулей — просто положите его в папку с модулем и посылайте AJAX-запросы через него!

Пример модуля реализованного по вышеописанной технологии.

PHP

Исчерпывающий парсинг ссылок в тексте

Необычное название поста я думаю все же объясняет отнюдь не новую проблему парсинга ссылок в тексте. Для тех кто не знает, «парсинг ссылок» — поиск всех ссылок (HTML тегов A) в каком-либо тексте. Задача поиска ссылок может встречаться  в разных случаях, к примеру при написании плагина подобно моему ExtLinks или же может быть вы пишите свой граббер.  Проблема поиска тегов A с помощью регулярного выражения в HTML-тексте, если бы они (ссылки) были написаны с учетом всех правил (валидности записи HTML) и вовсе не была бы проблемой. Однако одинаково правильное написание HTML-кода не всегда встретишь, потому и приходится придумывать чудные регулярки. Одной из таких  регулярок я и хочу поделится с вами:

 

PHP

Усовершенствуем substr() или анонс строки обрезанный по словам…

Про обрезку строк по словам уже много и долго писали. Но я рискну все же поделиться с Вами и своими мыслями по этому вопросу. Итак, задача: необходимо обрезать строку до определенного количества символов, но при этом не резать сами слова в строке. Есть множество решений этой проблемы и с помощью хитрых регулярных выражений, а также громоздких проходов по каждому символу в строке в цикле — мутанство!!! =). Мы же поступим иначе, отыщим самый последний символ пробела и обрежем строку по нему!

Итак, решение задачи:

 

PHP

Стандарты кодирования на PHP

Перепечатка статьи от 14.02.2009

Уже давно хотел собрать воедино все что связано непосредственно с оформлением кода и стандартами напсиания кода. И вот наконец-то предоставилась такая возможность.
Данные стандарты практически полностью базируются на Стандартах кодирования PEAR (http://pear.php.net/manual/ru/standards.php). Однако есть ряд изменений и дополнений.

Читать далее >

PHP, Архив, Найдено в Интернете

Если нужен бесплатный SVN-хостинг — то может быть unfuddle.com?

В последнее время в качестве халявной SVN-площадки юзал assembla.com, но вот теперь халявные времена изменились. Если раньше на Асембле давали 500 Мб, кучу сервисов и возможности создавать закрытые проекты, то теперь ситуация резко изменилась. Теперь все бесплатные хранилища перейдут в режим “Read Only”, и останутся либо чисто “Open Source” проекты (т.е. с отрктым для всех желающих хранилища) либо закрытые проекты но уже за деньги. Вообщем махнул я на это рукой и пошел на поиски другого халявного хостинга. Собственно когда-то на саму assembla.com набрел отсюда http://scrum.org.ua/kak-vybrat-besplatnyj-svn-xosting/ — там же есть небольшой список альтернативных ресурсов. Пройдясь по ним еще раз — нашел http://unfuddle.com. Естественно взор упал на бесплатный тариф: “Private FREE”. Там дают 200 Мб под репозиторий, можно создать всего один проект, заюзать всего одного юзера — т.е. всего 2, есть дополнительные сервисы. На первый взгляд работает не хуже и даже шустрее чем assembla.com. Ну что ж посмотрим… А пока меня это халявное место вполне устраивает, а может оно подойдет и Вам?

Theme by Anders Norén