Обновить
85
0
Art Shendrik@samally

Staff Software Engineer

Отправить сообщение
плохая поддержка html

Точного стандарта нет, но как разбирать вполне понятно. Даже хоть как нибудь было неплохо. Но как уже писал, встречал сотни html документов, которые вообще не мог обработать DOMDocument/SimpleXML. Целые куски обрабатывались некорректно, как-то корежились… в общем ад. При этом своей библиотекой или simple html dom обрабатывал спокойно.

получить их код ТОЧНО как в исходном документе

С этим встречался в очень многих задачах. XML DOM иной раз меняет исходный код достаточно сильно, «достраивая» код до валидного XML, что совершенно неприемлемо. Сделать то что-то можно при желании, но только с обертками и кучей костылей, что опять же не вариант. Нужен именно HTML DOM, причем заточенный под задачи парсера, а не рендеринга HTML (т.е. достраивать вообще что либо не нужно, надо обрабатывать как есть).
Попробуйте CDom :)
habrahabr.ru/post/176635/#comment_6137137

По крайней мере второй недостаток я в нём решил. С первым недостатком некоторые улучшения ожидаются в новой версией.
А все фичи также есть, даже больше и удобнее.
С XPath все отлично, но вот PHP DOM имеет ряд серьезных недостатков, как то неудобное API (собственно, как и в браузерах, из-за чего в свое время набрал популярность jQuery), плохая поддержка html (на самом деле плохая, я встречал сотни html документов, которые не мог обработать DOMDocument/SimpleXML), фактическая невозможность получить на выходе все тот же html (например выбрать конкретные узлы и получить их код ТОЧНО как в исходном документе).
Сейчас разрабатываю вторую версию своей старой DOM библиотеки. Интересно мнение тех, кто использует альтернативные. Если будет время/возможность, посмотрите пожалуйста — работает ли моя разработка в вашем случае. Сложные и даже очень сложные селекторы есть в функционале.

Описал библиотеку и функционал подробнее ниже.
Есть еще моя старая библиотечка: github.com/amal/CDom

  • jQuery подобное API
  • Автоматическое определение кодировки. Умеет читать кодировку указанную в самом html и некоторую эвристику для остальных случаев (не идеальное, но работает)
  • Поддерживает XML/HTML любой степени кривизны и поврежденности (насколько вообще возможно поддерживать)
  • Полная поддержка CSS3 селекторов и дополнительных «jQuery selector extensions»
  • Возможности по манипуляции DOM и экспорту результата
  • Умеет экспортировать HTML в текст с учетом блочных тегов, переводов строк и т.п.
  • Код покрыт тестами
  • Может работать также с простым BBCode и другими HTML подобными разметками

Сейчас как раз работаю над второй версией (с composer, PSR-0, переработанным парсером и прочими плюшками). Скорее всего напишу сравнительно-обзорную статью на хабре, как закончу.
Проблема структуризации/упорядочивания в принципе интересна, и заключается как раз в том, что мы не знаем как должна быть упорядочена информация, поскольку часто не знаем ее будущий состав.

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

Поисковик не является тут идеальным решением. Вообще не является решением. Поисковик обеспечивает только поиск, а это лишь часть задачи по использованию данных.
Торренты это только P2P обмен. Они не обеспечивают никакой структуризации/упорядочивания ни глобально, ни персонально для пользователя. Юзер скачивает и просто куда-то сохраняет. Даже поддерживать этот торрент ведь можно только сохраняя структуру скачанного, какой бы идиотской или не подходящей она не была. Это ведет к файлопомойкам на компе. К тому же торренты требуют центрального трекера — единственная точка, где хоть как-то упорядочена информация.
Специальная разметка тут совершенно не нужна. Я о другом говорю. Для начала нужен просто доступ к данным, которого сейчас нет или он затруднен/неполон.

И как раз есть идеи на тему того, как это возможно сделать. Без какой либо специальной разметки.

Просто другой принцип работы — не гипертекст/ссылки, а полностью контентная сеть. Параллельная всему остальному. Что-то вроде графа, упорядочивающего произвольные данные на компе пользователя, с возможностью автоматически обрабатывать все основные типы данных, а поверх этого P2P обмен любыми частями этих данных, в идеале с возможностью легко (для пользователя) анонимизировать/шифровать передачу. Книги, статьи, музыка, фильмы, игры. Что угодно. На самом деле даже первичная проработка того, как это сделать уже набросана.
Я совершенно не о специальной разметке. Это костыли по типу тех же микроформатов — неплохо, но не решает проблему. Здесь действительно будет развиваться автоматический анализ текста, смысла… Искусственный интеллект и т.п.

Под новым принципом я имею ввиду не развитие гипертекстового веба, а совершенно другой слой сети, параллельный сайтам. Основанный на других принципах. Созданный именно для структуризации и организации доступа к знаниям и информации. К более глубокому анализу текстов и комментов это не имеет отношения. Больше к проблеме того, что в интернете есть далеко не «все» (глубокой информации мало, то и дело приходится все равно обращаться к печатным источникам). А то, что есть плохо организовано.
На мой взгляд текущий интернет вообще плохо подходит для реальной информации, знаний. Больше всего он подходит для общения, котиков и сисек :) Все таки абсолютно никакая структурированность (исключения очень редки и обычно узкотематичны или как-то еще ограничены). Микроформаты выглядят на этом фоне довольно жалко. Конечно это попытка структуризации, но очень слабая.

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

Ну как бы вроде большинству людей на планете нравится заниматься сексом. Причем, кажется, в основном, куда больше, чем другие занятия :) А съемка — это дополнительные эмоции. Не зря же есть пары, которые снимают «хоум видео», хотя бы просто для себя. Это интересно. А кому то еще и нравится публичность, некий вызов обществу и т.п. Почему нет? Некоторым нравится заниматься сексом публично, например. Это близкие желания по сути.

Плюс секс это еще и форма общения. А публичность помогает находить больше интересных собеседников )))
Любая профессия может нравиться. А тем что нравится люди легко могут заниматься бесплатно ;)

Вообще по хорошему, единственная причина заниматься чем-то платно — необходимость денег на жизнь. Если эта необходимость удовлетворена, то странно не заниматься чем-то тебе интересным. И странно тогда ставить основным фактором выбора занятия деньги.

Кстати, если бы не любовь большинства к халяве и безделью (которая прививается текущей системой образования и общестом), то в каких-то странах возможно был бы уже внедрен безусловный основной доход, который позволил бы многим вообще не рассматривать деньги в качестве мотивационного фактора.
Извращение — вещь сугубо субъективная. Если вам не нравится что либо, не стоит считать, что те, кому это нравится чем то плохи. В конце концов, может быть это у вас проблемы с восприятием? ))
И порно и программирование — интересное занятие, как минимум. Так что общее есть. Советую вам задуматься о вреде догматичного мышления.

Если вы действительно настаиваете на том, что порно это плохо (не важно — просмотр, съемка, распространение), то интересно было бы прочитать ваши аргументы на эту тему. Т.е. чем именно плохо порно?
С чего вдруг это заболевание? Тогда и бесплатное программирование заболеванием получается.
ИМХО — Сейчас публиковать библиотеки для PHP без пакета композера и PSR-0 уже плохой тон.

Но, в любом случае, спасибо за библиотеку, как минимум попробую поюзать :)
Чью концепцию будущего веба? Разве что только гугловскую.
Не просто часто, всегда.
Так можно же все вычисления проводить с точностью до 100 знака, потом округлять до двух. Погрешность будет копиться около последних ста чисел после запятой и без проблем отрезаться.
Собственно как раз так использую.

Информация

В рейтинге
Не участвует
Откуда
Lisbon, Lisboa, Португалия
Дата рождения
Зарегистрирован
Активность

Специализация

Разработчик мобильных приложений, Архитектор программного обеспечения
Ведущий
От 15 000 €
Kotlin
Kotlin Multiplatform
Разработка под Android
Java
TypeScript
JavaScript