![]() |
|
![]() |
||||||
![]() |
![]() Технологии → Библиотеки для автоматизации сбора данных на сайте и имитации действий пользователя → PythonДанный класс библиотек облегчит Вам жизнь, если Вам будет необходимо произвести некоторые действия на удаленном сайте, такие как:
При этом Вам не надо будет заботиться о отсылке соответствующих заголовков, механизма работы с кукисами, редиректами и пр. Помочь в этом Вам смогут библиотеки:
![]() Одна из проблем, с которой сталкивается разработчик при создании мобильной версии сайта - это правильно определить зашел ли пользователь на страницу с помощью мобильного устройства. Правильный способ это сделать - использовать специальную базу данных определения устройств, одна из самых известных - это DeviceAtlas. Способ попроще, конечно же, основан на анализе строки User-Agent. Ниже приведенный код как раз использует этот метод, плюс еще несколько других нюансов и способен с большой долей вероятности определить является ли браузер мобильным. Читать дальше... Первый способ основывается на регулярных выражениях и взят из библиотеки Prototype. Второй способ основан на том, что при попытке получить объект из его текстового представления будет возникать ошибка, если формат представления некорректен. Читать дальше... При использовании XSLT-преобразованй следует помнить, что в разных брузерах по разному реализуется алгоритм преобразований. В приведенном примере учитываются особенности преобразований в браузерах Mozilla и Internet Explorer. Напомним, что браузеры Opera и Safari не поддерживают ни метод transformNode(), ни объект XSLTProcessor(). Обеспечить поддержку можно, к примеру, перкладыванием процесса преобразования на сторону сервера, а в самом скрипте получать уже результат преобразования. Читать дальше... ie, mozilla, opera, safari, xml, xsl, xslt, браузер, преобразования, трансформацияВ Firebug - популярном плагине для Firefox, существует фукнция console.trace(), которая позволяет просмотреть стэк фукнций, т.е. просмотреть последовательность вызова функций до определенной точки. Но если вы его не используете, либо, что более вероятно, вам нужно просмотреть стэк вызова функций на других браузерах, не поддерживающих Firebug, то вам возможно пригодится следующая функция, созданная Эриком Венделином (Eric Wendelin). Для просмотра стека достаточно вызвать функцию printStackTrace(). Читать дальше... debug, firebug, javascript, stack, traceПример загрузки файлов на сервер без перезагрузки страницы. Функция submit() является основной в объекте AIM. Она создаёт скрытый iframe при помощи функции frame(), добавляет атрибут target для формы и при необходимости выполняет callback onStart при начале отправки формы. В целом, принцип действия скрипта основывается на применении атрибута target, который указывает, где будет отображаться новый документ. Поскольку здесь target указывает на скрытый iframe, то страница не будет перезагружаться при оправке формы, а ответ от сервера будет помещен как его содержимое. Пример применения объекта AIM: <form action="index.php" method="post" onsubmit="return AIM.submit(this, {'onStart' : null, 'onComplete' : completeCallback})"> .... </form> Читать дальше... ajax, file, javascript, uploadНа самом деле проверяется существование OpenID сервера для указанного адреса, то есть даже если проверка прошла успешно - указанного OpenID аккаунта может и не существовать. Но в большинстве случаев хватит и такой проверки. Необходимо подключить класс Simple PHP OpenID. Читать дальше... Понадобилось прикрутить на сайт авторизацию по OpenID. Остановился на библиотеке Simple OpenId, для которой написал метод-обертку, позволяющий сделать авторизацию с помощью этой библиотеки удобно и быстро. Метод разбит на два этапа и работает следующим образом: - делается вызов самого метода, в качестве параметров необходимо указать OpenID и имя функции, происходит переадресация пользователя на сервер OpenID провайдера, для подтверждения доступа. Обратите внимание на строку 38 - здесь указывается URL, к которому обратится OpenID сервер после подтверждения доступа - переход на этот адрес снова должен запустить метод OpenIdAuth - то что метод уже вызван сервером OpenID можно определить по параметрам из get-запроса, а конкретно 'openid_mode'. После этого анализируется ответ сервера и вызвается callback-функция, имя которой было передано при первом запуске метода. То что OpenID авторизация была пройдена успешно - будет извещать параметр передаваемый в callback-функцию со значением "VALID". Учтите, что если вы используете процедуроное программирование, а не объектное, то вам надо будет переписать строки проверки существования callback-функции и ее вызов - строки 90 и 92 соответственно. Читать дальше... Потребовалось сделать перенос записей в базу данных Wordpress. В интернете в основном описано, как вставлять записи в Wordpress посредством XML-RPC - этот способ мне частично не подходил, поэтому решил разобраться со струкурой базы данных Wordpress'a - она оказалась достаточно простой и я за некоторое время написал код, который находится ниже. Код писался под фрэймворком Codeigniter, поэтому чтобы использовать его в другой среде - достаточно изменить код работы с базой данных, он достаточно понятный, поэтому проблем возникнуть не должно. У кого есть вопросы по работе кода - пожалуйста в комментарии. Читать дальше... В WordPress за вызов удаленных процедур отвечает скрипт xmlrpc.php. Те кто заглядывал в этот скрипт знают, что WordPress поддерживает аж четыре известных API - WordPress API, Blogger API, MetaWeblog API и MovableType API. Я решил использовать MetaWeblog API, потому, что на тот момент я был знаком с ним лучше всего (правда в процессе развития проекта пришлось познакомиться и с другими API, так как заказчик захотел поддержки не только WordPress-а, но и Blogger-а с MovableType на пару). Сама функция, реализующая добавление нового поста в блог на WordPress, находилась в соответствующей модели CodeIgniter и выглядела примерно так: Читать дальше... api, blog, codeigniter, metaweblog, php, publish, rpc, wordpress, xml, xml-rpcНебольшая функция, с помощью которой вы сможете узнать протяженность флэш-видеоролика, дополнительные классы или расширения не требуются Читать дальше... Эти функции работают исключительно под Windows. Чтобы инициализировать объект Excel, на машине должен быть установлен Excel с опцией "Серверные компоненты". Желательно ставить Excel2000. До версии PHP 4.2.3 работа с COM имела сильные глюки, в частности не работал $object->Release(); Вызвав десяток раз COM объект вы бы сожрали всю свободную память. Привожу скрипт, который генерирует ведомость по заработной плате, естественно, данные можно брать из БД. Скрипт показывает как открыть книгу, вставлять данные и формулы в ячейки, форматировать ячейки, делать автозаполнение. Если указывать не абсолютный путь, то Excel будет искать файлы относительно рабочего каталога, который устанавливается в "Сервис-Параметры-Общие-Рабочий каталог". Для работы скрипта нужно заготовить файл blank.xls Читать дальше... Этот паттерн удобно использовать, если требуется иметь в системе только один экземпляр объекта (это может быть, к примеру, интерфейс базы данных). Однако в реализации для PHP4 есть одна тонкость. Читать дальше... Когда накапливается больше 20 контроллеров и моделей, то начинает казаться не такой уже и хорошей идея жёсткого закрепления папок, куда нужно помещать файлы определённого типа. Конечно, есть $modelPaths и $controllerPaths, но каждый раз назначать их вручную не так уж и приятно. $modelPaths = array('/path_to_model_folder_A/', '/path_to_model_folder_B/');
в последних версиях CakePHP можно создавать любые подпапки и Cake сам поймёт, где что искать.
Но у меня, во-первых, не получилось сходу это сделать и некоторые проекты не могут работать на последних night-билдах. Поэтому я использую альтернативное решение: Читать дальше... Способ легко кешировать результаты функции, которые не меняются при условии одинаковых входящих параметров. Читать дальше... Парсер файла MS Excel, сохранённого как таблица xml и сохранение результата в базу данных mysql Читать дальше... Имеем два поддомена, например A.domain.tld и B.domain.tld Задача: вызвать функцию Javascript, определенную в js файле, расположенном в поддомене A.domain.tld из js файла, расположенного в поддомене B.domain.tld. Настройки безопасности браузера по умолчанию не позволяют это делать. Читать дальше... Класс для работы с Web-камерой средствами Visual Basic .NET, а также пример его использования. Читать дальше... .net, camera, vb, visual basic, webПример показывает, как обработать текст в формате: [Число][Пробел][Слово], при помощи регулярных выражений, и вывести результат в ListBox. Читать дальше... multimedia, play, sound, vb, visual basic, wav information, mp3, tag, vb, visual basicПример показывает, как можно проиграть MP3-файл средствами Visual Basic 6.0 с импользованием API. Читать дальше... mp3, multimedia, play, sound, vb, visual basic avi, picturebox, play, vb, visual basic![]() multimedia, play, sound, vb, visual basic, wav[ 1 ] [ 2 ]
|
Меню
Подписка на RSS:
Поиск
Облако тегов
.net
array
asp
bash
browser
charset
check
class
clean
convert
count
create
css
curl
database
date
delete
directory
download
element
email
equivalent
extension
file
find
form
format
function
get
height
html
http
ie
image
javascript
jquery
load
mysql
number
page
perl
php
random
scriplet
send
shell
size
sql
string
text
time
url
utf8
variable
vb
visual basic
width
window
xml
xslt
|
![]() |
![]() |
![]() |
||
![]() |
![]() |