Архив рубрики ‘ PHP ’

У меня rttorent установлен на роутере (D-link rir-320 с прошивкой от Олега). Когда сам за компом надо ограничевать скорость клиенту, что бы он не забивал весь канал. А когда компьютер я отключаю, было б хорошо убирать ограничение, что бы быстрее скачивалось По скольку делать вручную мне это быстро надоело, то я написал два скрипта. Написаны они на php и одному для периодического запуска необходим крон. Как установить на роутер крон и пхп вы можете найти в множестве мест.
Читать далее...

Понадобилось мне сделать так что бы при загрузке изображений на сайт через imce можно было удобно их вставлять в запись и навешивать shadowbox эффект (впирнципе для lightbox этот пример переделается элементарно). Читать далее...

И в операторе if (php)

Совет по оптимизации логических выражений (в частности в if): если в выражении используются только операторы "и" (&&), то интертпретатор последовательно проверяет значения подвыражений, заключеных между оператором "и". Если какое-то из них возращает false, то далее выражения не проверяются и все выражение возращает false. Например: Читать далее...

Обнаружился баг в друпале: если использовать в форме поле загрузки файла ('#type' => 'file') и файл грузить с помощью друпаловского AHAH. Вроде такого: Читать далее...

Есть в php удобная возможность инкриментить и дикриментить переменные строкового типа. Причем, если последним символом будет буква, то при инкрименте она перейдет в следующую по алфавиту. В случае, если это последняя буква из алфавита, то заинкриментиться n-1 символ, а последний станет первой буквой алфавита. Например: Читать далее...

JavaScript’овый вес в Drupal

Обнаружил следующую траблу в друпале при использовании элементов weight и функции drupal_add_tabledrag, которая навешивает на строки таблицы с weight'ом JS обработчик. Он позволяет перетягивать строки, меняя тем самым вес, а не указывать вес в листобоксе. Читать далее...

Удобная возможность есть в eclips для php: если в комментариях написать TODO:, то текст за этим ключевым словом будет вынесен в отдельный список, а само слово выделено. Очень удобно ставить таски по доработке или изменению функционала прямо там где это необходимо. В принципе, если вы юзаете другую IDE, то так тоже можно делать просто искать по слову TODO:.

Пример:

//TODO:я таска

Допустим по нажатию кнопки или ссылки нам надо подгрузить аяксово форму в какой-то div. Средствами drupala и с библиотекой jQuery это очень просто делается. Но нам же не надо, что бы страница с формой перегружалась, правда? Следовательно на неё надо повесить ahah. Вот тут то и появиться проблема. Читать далее...

Часто при работе с базой данных MySQL, когда используется русская кодировка в формате UTF-8, перед тем как начать работу непосредственно с таблицами нужно выполнить несколько запросов для установки кодировки для текущей сессии. Иначе при чтении или записи получим всякие крякозяблы :)

Вот запросы в MySQL:
Читать далее...

Парсим xml

Как и обещал, небольшой пост про то как можно парсить XML документы с помощью встроенного в php 5 класса DOM.

Предположим что у нас есть XML документ myfile.xml следующего содержания: Читать далее...

Была обнаружена проблема при использовании DOM парсера php (независимо от использования DOMDocument::load или DOMDocument::loadXML), если в тексте присутствует одиночный амперсанд (&). Так, например, если он находился в url'e проблем не возникало, но одиночный вызывал ошибку. Решение данной проблемы: перед парсингом HTML документов, лучше их загрузить в переменную и в ней заменить одиночный & на HTML эквивалент & . Тогда проблем не возникает.

Делать это при разборе XML документа незачем, так как валидный XML документ и так не должен содержать подобного символа.

Парсим HTML через DOM

Уже писал как можно удобно парсить html файлы с помощью класса PHP Simple HTML DOM Parser используя синтаксис известной JS библиотеки jQuery. Но у этого метода есть два недостатка, причем один из них весьма существенн: медленная работа. Ну и так же требуется тянуть лишней сторонний код. Для более быстрой работы советую взглянуть в сторону встроенного класса (php >= 5) DOM. Он может разбивать в DOM HTML документы и XML.
Читать далее...

Разбирая чужой код наткнулся на один интересный способ вывода html в php:

$temp=<<<HTML
<b>ваш HTML код</b>
HTML;

Только учтите, что после << обязателен перевод строки, а HTML; может быть только в начале строки.

Попросили в комментариях поста, где я рассказывал про PHP Simple HTML DOM Parser, написать более подробно о работе с ним. В качестве примера набросал небольшой парсер для перво попавшегося интернет магазина. Читать далее...

Показ ячеек из MySQL

Писал скрипт заказчику, скрипт результат своей работы писал в БД MySQL. Поскольку мне надо было демонстрировать работоспособность его на своем хосте пришлось написать небольшой скрипт для показа из БД этого результата (выводятся все строки из указанных полей), не давать же заказчику доступ к phpMyAdmin :) . Поскольку одной строкой можно легко поменять какие поля выводить решил выложить скрипт, мало ли кому понадобиться по быстрому чет выводить:) Читать далее...