Все о web разработке на xdan.ru
  • Регистрация
  • Войти
   

Menu
  • Главнаявсе о web разработке
  • БлогАвторский блог
  • CopySiteСервис
      • Новости сервиса CopySite
  • Категориивсе материалы
      • JavaScript
          • jQuery
              • Обзор плагинов
      • PHP
          • Yii
          • Laravel
      • Новости Web технологий
      • Soft
          • Opera
      • Парсеры
      • CMS
          • Joomla
              • Документация для разработчиков Joomla
          • Danneo
          • UMI
          • Drupal
      • Социальные сети
      • Из жизни
      • Политика
      • Мои разработки
          • Конструктор Yandex карт
      • Новости сайта
      • SEO
      • Защита сайта
      • Администрирование WEB сервера
      • Монетизация сайта
      • web разработка
      • Железо
      • Хостинг
      • Игры
      • Про киномнение о кино
      • Нативное программирование
      • Видео
      • Joomlaвсе для joomla
          • Плагин CTRL+S быстрое сохранение материала в Joomla
              • Скачать плагин CTRL+S
          • Создаем собственную SEF систему для Joomla
          • Как написать Joomla плагин для xmap
          • Модуль Конструктор Яндекс Карт для Joomla
              • Скачать модуль Конструктор Янлекс Карт для Joomla
          • Компонент Яндекс Карты для Joomla
              • Документация компонента Яндекс Карты для Joomla
              • Демонстрация - лицевая часть
              • Демонстрация - администратор (demo,demo)
              • Уроки
          • Менеджер перенаправлений Joomla
  • Магазинкупить продукты сайта
  • Наши разработкиавторские разработки
      • HTML Map generator
      • liveadd
      • Конструктор Яндекс Карт
      • Онлайн синонимайзер текстов
      • Joomla Module Generator
      • Joomla плагин CTRL+S AutoSave
      • Лучший DateTimePicker
      • miniMySQLAdmin - легковесная альтернатива phpMyAdmin
      • Joomla модуль Конструктор Яндекс Карт
      • Скачать копию сайта
  • Конструктор Yandex картгенератор кода для Яндекс карт

Работа с файлами в JavaScript, Часть 2: FileReader

Информация о материале
Категория: JavaScript
Опубликовано: 29 июня 2012
Просмотров: 100429
  • javascript
  • file api
  • file
  • arraybuffers
  • data uris
  • filereader
  • readastext
  • readasbinarystring
  • readasarraybuffer
  • readasdataurl
  • чтение данных

В моем предыдущем посте, я затронул тему использования файлов в JavaScript, с особым акцентом на том, как получить доступ к объектам File. Эти объекты, содержащие блок метаданных, можно получить только тогда, когда пользователь либо собирается загрузить файл через контрол формы или перетаскивает его методом Drag&Drop на веб-страницу. Итак у Вас есть эти метаданные, следующим шагом является чтение данных из них.

Тип FileReader

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

Есть несколько форматов, в которые  FileReader может представлять данные из файла,  формат должен быть задан, когда файл открывается для чтения. Чтение осуществляется с помощью вызова одного из следующих методов:

readAsText()  – возвращает содержимое файла как plain text
readAsBinaryString() – возвращает содержимое файла в виде строки закодированных двоичных данных (устарело – вместо него используйте readAsArrayBuffer() )
readAsArrayBuffer() – возвращает содержимое файла как ArrayBuffer (хорошо для двоичных данных, например, изображения)
readAsDataURL() – возвращает содержимое файла как data URL

Подробнее... 7 комментариев

Пишем javascript парсер при помощи Google Chrome Extension

Информация о материале
Категория: Парсеры
Опубликовано: 28 июня 2012
Просмотров: 80448
  • jquery
  • парсер
  • simple_html_dom
  • google
  • chrome
  • расширение
  • парсер яндекса

Большой интерес пользователей к статье Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser показал, что тема парсеров очень актуальна. В продолжении темы, хочу рассказать, как можно парсить сайты используя JavaScript и всю мощь библиотеки jQuery, взамен Simple HTML DOM Parser.

Нет, мы не будем использовать для обработки js, какой-нибудь серверный интерпретатор,  весь парсинг и обработка данных будет происходить на Вашей машине, в Вашем браузере. Браузером будет Google Chrome, а парсер мы реализуем в виде расширения Google Chrome Extension. 

 Почему  Google Chrome, трудно сказать, самым верным ответом наверное будет: "А почему бы и нет?!". Не сомневаюсь, что тоже самое можно будет сделать и для Opera. Однако, эта статья не про написание расширений для браузера( хотя возможно Вы почерпнете для себя и здесь, что-то новое), а про то, как писать client-side парсеры на JavaScript.

Также хочу рассказать про преимущества, которые дает такой подход к написанию парсера.

Во первых:  jQuery и JavaScript в целом обладает фантастическим  набором методов для  работы с DOM документа, Simple HTML DOM Parser тихо курит в сторонке. Навигация по дереву DOM браузер априори обрабатывает очень быстро, это собственно его нативный функционал.

Второе: по планете давным давно шагает WEB 2.0. Для тех кто в танке:  веб  второй версии подразумевает динамически меняющийся контент сайта. AJAX или просто замена определенного участка страницы через JS сводит на нет работу любого php парсера. Проиллюстрирую на примере:

1
2
3
4
5
<html>
<body onload="document.body.innerHTML='Страница была создана динамически! Так нужный Вашему парсеру email равен leroy@xdan.ru'">
email:leroy*****.ru
</body>
</html>

Полагаю Вы догадываетесь, что увидит написанный на php парсер, загрузивший данную страницу, и тупо проверяющий содержание тега body.

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

Подробнее... 33 комментария

Работа с файлами в JavaScript, Часть 1: Основы

Информация о материале
Категория: JavaScript
Опубликовано: 26 июня 2012
Просмотров: 100933
  • ajax
  • html5
  • file api
  • drag and drop
  • file
  • filelist
  • formdata

При всем бурном развитии web, и стандартов html в частности, работа  с файлами, практически никогда не менялась. К счастью, с приходом HTML5 и связанных с ним API, сейчас у нас гораздо больше возможностей для работы с файлами, чем когда-либо в предыдущих версиях браузеров(iOS до сих пор нет поддержки File API).

Тип Файл - File

Тип File определен в спецификации File API[1] и является абстрактным представлением файла. Каждый экземпляр File имеет следующие свойства:
 name – имя файла
 size – размер файла в байтах
 type –  MIME тип файла

Объект типа File дает важную информацию о файле, не предоставляя прямой доступ к содержимому файла. Он является лишь ссылкой на файл, и получение данных из этого файла является отдельным процессом в целом.

Получение ссылок на файлы

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

 Когда вы используете элемент <input type="file">, Вы даете веб странице (и серверу) разрешение на доступ к файлу.  Так, что первое, как вы можете получить объект File, это поле <input type="file">.

HTML5 определяет файловые ссылки для всех <input type="file"> управления. Эта коллекция FileList, которая представляет собой структуру в виде массива под названием FileList содержащую объекты типа File для каждого выбранного файла в поле <input type="file">  (помните, HTML5 позволяет выбрать несколько файлов в этом элементе управления). Так что в любой момент времени, Вы можете получить доступ к файлам пользователя, которые он  выбрал, с помощью кода вроде этого:

Подробнее... 14 комментариев

Как написать плагин на jQuery

Информация о материале
Категория: jQuery
Опубликовано: 11 апреля 2011
Просмотров: 57203
  • jquery
  • plugin
  • event
  • урок
  • своими руками
  • data

Итак, вы стали комфортно работать с jQuery и хотели бы знать, как написать свой собственный плагин.  Замечательно! Вы там, где нужно. Расширение функционала jQuery по средствам плагинов и методов является очень мощной штукой и может спасти много часов разработки Вам и Вашим коллегам,  заключая Ваши самые часто употребляемые функции в плагины. Этот пост, обрисует в общих чертах,  основы, лучшие методы, и распространенные ошибки, которые надо учитывать при написании Вашего плагина. 

Содержание

Приступая к работе
Контекст
Hello World!!!
Поддержка цепочек вызовов
Умолчания и опции
Пространство имен
Методы плагина
События
Данные
Резюме

 

Приступая к работе

Начнем писать JQuery плагин, с добавления нового метода к объекту jQuery.fn, где имя метода - это название Вашего плагина: 

1
2
3
4
5
jQuery.fn.myPlugin = function() {
 
  // здесь помещаете код Вашего плагина
 
};

Но постойте! Где же мой знак доллара, который я знаю и люблю?- спросите Вы. Он по прежнему доступен, однако надо убедиться, что Ваш плагин не будет конфликтовать с другими библиотеками, которые также могут использовать знак доллара(Mootools, Prototype). Для этого код Вашего плагина нужно поместить в само вызывающееся замыкание. 

1
2
3
4
5
6
7
(function( $ ){
  $.fn.myPlugin = function() {
   
    // здесь код Вашего плагина
 
  };
})( jQuery );

Так-то лучше. После этого, другие библиотеки сколько угодно могут изменять знак $, на Вас это не отразится. Внутри замыкания, $ будет равен jQuery.

Подробнее... 29 комментариев

Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser

Информация о материале
Категория: PHP
Опубликовано: 18 марта 2011
Просмотров: 413697
  • парсер
  • html
  • simple_html_dom
  • dom
  • парсер яндекса

copysite

Те, кто хоть раз писал парсер, знает, что не стоит этого делать с помощью регулярных выражений. Проиллюстрировать это утверждение поможет следующий пример.

 Возьмем HTML код: 

<div><a href="http://xdan.ru"><div>Сайт по программированию парсеров</div><div> и многое другое</div></a></div>

К примеру, из него нам нужно получить описание и url сайта. Если брать исключительно этот кусок кода, то все решается достаточно просто: 

$html = '<div><a href="http://xdan.ru"><div>Сайт по программированию парсеров</div><div> и многое другое</div></a></div>';
preg_match('#<div><a href="([^"]+)"><div>([^<]+)</div><div>([^<]+)</div></a></div>#U',$html,$list);
echo 'url:'.$list[1].',title:'.$list[2].$list[3]; // выведет url:http://xdan.ru,title:Сайт по программированию парсеров и многое другое

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

<div><a href=”http://xdan.ru”><div>Сайт по <b>программированию</b> парсеров</div><div> и многое <div> многое </div> другое </div></a></div>

Такой код регулярному выражению не по зубам.

Обычно, в вузах на этот случай учат писать конечный автомат. Суть его в том, что мы перебираем, посимвольно, весь html текст, находим начало тега, и строим дерево документа. Так называемое DOM (Document Object Model)

Сейчас, писать такое самому  нет необходимости.

В php, начиная с  версии 5, есть встроенные методы работы с деревом документа (класс DOMDocument), но основан он на XML парсере.

А HTML и XML это хоть и очень похожие, но в тоже время абсолютно разные технологии.

К примеру, непременное требование к XML это закрытые теги и отсутствие ошибок.

Отсюда вытекает условие: ошибок в html, который мы парсим с помощью нативных средств php,  быть не должно.

К сожалению, на сайтах донорах, ошибки не редки, а значит этот метод отпадает.

Для корректного разбора таких сайтов, на помощь придут php библиотеки PHPQuery, Simple HTML DOM, Zend DOM Query, Nokogiri .

Некоторые из них, после небольших манипуляций скармливают html  тому же DOMDocument. Мы не будем их рассматривать.

В этой статье я расскажу про SimpleHTMLDOM. Этой библиотекой я пользуюсь уже несколько лет, и она меня еще ни разу не подводила.

Подробнее... 273 комментария
  1. Примеры работы с ajax на jQuery
  2. Многопоточные парсеры
  3. onDomReady без jQuery
  4. Как определить преобладающий цвет в изображении

Страница 9 из 11

  • В начало
  • Назад
  • 2
  • 3
  • ...
  • 5
  • 6
  • 7
  • 8
  • 9
  • ...
  • 11
  • Вперед
  • В конец

Кто сказал, что программисту не нужен психолог?

Почитать обо мне здесь:
Сайт: adel-chupurnova.ru
Telegram: https://t.me/proshloedlyanastoyashego
Instagram: https://instagram.com/adel_chupurnova

Полезные статьи

  • Joomla сниппеты
  • Joomla ZOO сниппеты
  • PHP сниппеты
  • Yii сниппеты
  • SSH сниппеты и защита сайта
  • CSS сниппеты
  • JavaScript сниппеты

Популярные статьи

  • Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser 2011-03-18 12:33:20

  • Примеры работы с ajax на jQuery 2011-03-01 21:04:00

  • Как написать универсальный парсер сайтов за 1 час 2014-04-25 09:36:58

  • Работа с файлами в JavaScript, Часть 1: Основы 2012-06-25 22:02:14

  • Работа с файлами в JavaScript, Часть 2: FileReader 2012-06-29 00:16:21

Категории

  • JavaScript
  • PHP
  • Новости Web технологий
  • Soft
  • Парсеры
  • CMS
  • Социальные сети
  • Из жизни
  • Политика
  • Мои разработки
  • Новости сайта
  • SEO
  • Защита сайта
  • Администрирование WEB сервера
  • Монетизация сайта
  • web разработка
  • Железо
  • Хостинг
  • Игры
  • Про кино
  • Нативное программирование
  • Видео
  • Joomla
Как скопировать любой сайт?

© 2025 Все о web разработке на xdan.ru

  • О сайте
  • Об авторе
Go Top