Вы могли бы написать собственный валидатор и использовать комбинацию filter_var и parse_url?
Что-то следующее сделает эту работу ...
<?php
$url = "http://example.com/page/blahblahblah";
if (!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
$parts = parse_url($url);
echo "{$parts['scheme']}://{$parts['host']}";
Хорошо разломайте его на части. Что такое веб-браузер? Что это делает? Это:
И это - в основном веб-браузер вкратце. Теперь некоторые из этих задач невероятно сложны. Даже легкие звучащие могут быть твердыми. Возьмите выбирающее внешнее содержание. Необходимо иметь дело с вариантами использования как:
причиной I и другие является colletively, повышение наших бровей является механизмом визуализации, твердо (и, как кто-то отметил, годы человека вошли в свою разработку). Главные механизмы визуализации вокруг:
лучшие три нужно считать главными механизмами визуализации, используемыми сегодня.
механизмы JavaScript также тверды. Существует несколько из них, которые имеют тенденцию быть связанными с конкретным механизмом визуализации:
И конечно существует весь материал пользовательского интерфейса: навигация между страницами, историей страницы, очищая временные файлы, вводя в URL, автоматически заполняя URL и так далее.
, Который является партия из работы.
Походит на действительно интересный проект, но он потребует, чтобы Вы инвестировали огромное усилие.
Это не легкая вещь, но с академической точки зрения, Вы могли учиться так от него.
Некоторые ресурсы, которые Вы могли проверить:
, Но видящий его от реалистичный точка зрения, огромное усилие должно было кодировать, это с нуля напомнило мне этот комик:
(источник: geekherocomic.com )
Удачи:-)
Это - безумно амбициозный проект (специально для единственного разработчика), но что-то, что я хотел бы сделать когда-нибудь - Вы могли узнать о так много из него.
я не знаю много о том, как протоколы работают (что-то, что определенно необходимо исследовать), или очень о том, что продолжается в браузере, но великолепное место для запуска было бы источником браузеров с открытым исходным кодом, прежде всего, Chrome и Firefox. Chrome является особенно хорошим проектом посмотреть на то, поскольку они только делают то, с чего я ожидал бы, что Вы запуститесь: хром и бэкенд браузера. Забудьте создавать механизм визуализации сначала - используют WebKit или Gekko.
Вы имеете в виду как в записи Вашего собственного механизма визуализации?
я могу только сказать удачу. Много лет человека вошли в текущее поколение различных браузеров, Если Вы захотите добиться большего успеха, чем любой из них, то Вам будут нужны некоторые серьезные навыки. Если необходимо спросить, где запустить, у Вас, вероятно, есть больше, чем несколько лет исследования для движения, прежде чем имело бы любой смысл пробовать выполнить такую задачу.
Тем не менее вот некоторые (очевидные) указатели:
редактирование ниже здесь
я не имел в виду, чтобы оно или мотивировало или демотивировало, просто попытка показать Вам, что браузер является действительно большим проектом и что действительно большие проекты требуют большой мысли. Тупая честность опрыснута юмором.
я программировал для более чем двух третей моей жизни, и мне нравится думать, что я - довольно достойный программист, но было бы глупо из меня думать, что я получу половину возможности при записи достойного веб-браузера с нуля.
Ofcourse, если это - то, что Вы хотите сделать, не позволяйте моему комментарию стоять на Вашем пути. Можно, вероятно, добиться большего успеха, чем Internet Explorer.
Как все остальные уже сказали, веб-браузер является огромным проектом. Необходимо волноваться о tcp/ip& сокеты, представляя HTML, с помощью css, создавая модель DOM, выполняя JavaScript, имея дело с уродливой разметкой и кодом, и обрабатывая все типы файлов, прежде чем можно будет даже думать обо всех вещах люди, ожидают от браузера (т.е. закладки, история, частный просмотр, безопасность, и т.д.) Это - огромный проект.
Однако это может быть сделано. Мое предложение состояло бы в том, чтобы пойти посмотреть на источник Firefox. Я знаю, что Вы сказали, что хотите создать браузер с нуля, но это было бы очень полезно для , узнают из проекта с открытым исходным кодом, сначала.
я загрузил бы источник Firefox и медленно разделял бы его вниз. Другими словами, я взял бы источник, и удаляют вся функциональность установки закладки. Затем я удалил бы способность обработать дополнения. Затем я удалил бы весь код относительно того, чтобы сохранить файлы. Я продолжил бы этот процесс, пока я не добрался очень основной веб-браузер. Я просмотрел бы тот код.
Затем я начал бы создавать свое собственное. Я взял бы знание, которое я получил от демонтирования Firefox, и я поместил его в создание нового браузера.
А все из удачи Вам!
Вы могли запустить с правильно построенного и допустимого XHTML, который должен быть легче, чем суп тега, с которым Ваш браузер встретится в реальной "жизни".
Тогда необходимо найти способ изогнуть реальный HTML от сети до потребностей.
, Но не разыгрывают себя: браузер не является маленьким проектом.
... тогда начните волноваться о безопасности
(нефункциональный, и сквозные проблемы нужно обычно считать честными хотя:))
очень амбициозный проект, но один разработчик не может сделать этого одного, Вам нужна команда (менеджер проектов, тестеры...), и возможно необходимо рассмотреть выбор языка c# работы только над окнами (я знаю моно на Linux, но это не то же), так или иначе, я желаю Вам удачи, и я буду рад использовать Ваш браузер: D
У Вас действительно есть много свободного времени в Вашей руке, не так ли? AFAIK, большинство браузеров было записано в C++, не, всем пользователям установили платформу.NET на их компьютерах и если они делают это не могла бы быть версия, в которой Вы нуждаетесь.
Это могло взять Вас годы, но так или иначе, существует много браузеров с открытым исходным кодом там, FireFox, Google Chrome.. и т.д. Вы могли запустить, взглянув на код, удачу с этим:)