Вопрос № 161951: добрый вечер! стоит следующая задача: Создать сетевое клиентское приложение, реализующее обращения к www-серверу по протоколу HTTP и производящее обработку полученных данных. Приложение должно выполнять следующую функцию - составить и вывести с...
Вопрос № 161952: Всем здрасте! Подскажите плизз, каким образом, а если есть готовый скриптец - было бы вообще супер (разумеется с пояснениями), через пхп можно реализовать
вычисление разрешения монитора пользователя? Заранее спасиба.... <img src="htt...Вопрос № 161966: Здравствуйте! Возникла проблемка при парсинге html страниц. Когда считавается ответ сервера таким образом: $sans = ""; while(!feof($fp)) { $sans .= fgets($fp); } и ищется вхождение строки preg_m...
Вопрос № 161.951
добрый вечер! стоит следующая задача: Создать сетевое клиентское приложение, реализующее обращения к www-серверу по протоколу HTTP и производящее обработку полученных данных. Приложение должно выполнять следующую функцию - составить и вывести список сайтов, на которые ссылаются страницы исходного сайта, и обладать дружественным к пользователю интерфейсом. Для формирования запросов и получения ответов сервера использовать функции для работы с сокетами. Адрес www-сервера и номер порта (по умолчанию 80) вводятся
пользователем. Адрес может быть записан как в виде IP-адреса, так и в символьной форме. Приложение должно включать контроль ошибок при вводе и обработке запросов.
у меня такой вопрос... есть ли какая-нить стандартная функция, которая как раз составляет этот список...или же это как-то по-другому происходит?
Отправлен: 03.03.2009, 21:38
Вопрос задала: Lyuboff (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Волков Алексей
Здравствуйте, Lyuboff! стандартной функции нет, за исключением функции обработки регулярных выражений, например preg_match_all (). В Вашем случае удобно разделить задачу на три части:
1) интерфейс - форма ввода исходного сайта и её обработка; 2) получение кода страницы сайта с помощью сокетов; 3) обработка этого кода с помощью регулярного выражения для выделения конструкции <a href="[нужная нам ссылка]"> и вывод всех найденных результатов.
Поскольку я полагаю, что
это учебное задание, то сознательно не привожу примера решения.
--------- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
Ответ отправил: Волков Алексей (статус: 3-й класс)
Ответ отправлен: 04.03.2009, 09:44
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245004 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 161.952
Всем здрасте!
Подскажите плизз, каким образом, а если есть готовый скриптец - было бы вообще супер (разумеется с пояснениями), через пхп можно реализовать вычисление разрешения монитора пользователя?
Заранее спасиба....
P.S.: просто есть у меня скриптец, замечательно реализующий вычисление разорешения монеитора пользователя, но реализованный на джава скрипт + пхп, а это мне не очень нравится... Хотелось бы узнать, как можно
это реализовать без участия джавы...
Отправлен: 03.03.2009, 22:23
Вопрос задал: Dfish (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Селев Валерий
Здравствуйте, Dfish!
Во-первых, Джава и Джаваскрипт — суть разные технологии. Во-вторых, разрешение экрана отнсится к клиентской части, а РНР — к серверной.
Таким образом, определить разрешение экрана пользователя без применения какой-либо технологии на стороне клиента (например, джаваскрипт) невозможно.
Ответ отправил: Селев Валерий (статус: Студент)
Ответ отправлен: 03.03.2009, 22:48
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244987 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: Jan
Здравствуйте, Dfish!
Присоединюсь к предыдущему эксперту и посоветую вообще поизучать HTTP. PHP используется в основном для формирования страницы, чтоб в последствии послать её на клиентский компьютер, как только таковая страница попадает клиенту, программа на PHP обычно уже завершена! То есть возможна передача данных только через посредника в виде javascript, и никак иначе.
Ответ отправил: Jan (статус: 5-й класс)
Ответ отправлен: 03.03.2009, 23:42
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244990 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 161.966
Здравствуйте! Возникла проблемка при парсинге html страниц. Когда считавается ответ сервера таким образом: $sans = ""; while(!feof($fp)) { $sans .= fgets($fp); } и ищется вхождение строки preg_match_all("#div#",$sans,$sec); , то это вхождение не находится. если искомый фрагмент разбивается переломом строки: **** di v***. Как с этим бороться, ума не приложу?
Отвечает: Товарищ Бородин
Здравствуйте, Липатов Андрей Александрович! Ваше регулярное выражение действительно не предусматривает того, что искомый фрагмент может быть размазан по нескольким строкам.
Что касается перевода строк, то и в этом случае есть выход. Надо немного переделать "регулярку" с тем, что учитывались переводы строк. Думаю, что если регулярное выражение будет выглядеть вот так: #ds*is*v#i то все будет нормально. Метасимвол s (некий "собирательный образ" ) учитывает переводы строк, символы табуляции, вобщем, все "неприятности".
Желаю удачи :) С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ---- Ответ отправлен: 04.03.2009, 08:12
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245001 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: Hubbitus
Здравствуйте, Липатов Андрей Александрович!
Про регулярное выражение вроде #ds*is*v# Товарищ Бородин сказал верно, оно должно помочь (можно таже модификатор i добавить чтобы не учитывать регистр букв, это тоже у него не плохая идея, хотя в вопросе такой ели не стояло) в Вашем случае. Единственнное, он дал несколько совсем не верных описаний, думаю полезно будет поправить дабы не плодить заблуждений: > Ваше регулярное выражение действительно не предусматривает того, что искомый фрагмент может быть
размазан по нескольким строкам. Следует добавить к регулярному выражению модификатор m. Т.к. в реегулярном выражении не используется никакого заякоревания на начало (^) или конец строки ($) то модификатор m совершенно бесполезен и не будет иметь никакого эффекта (в прочем и не помешает конечно, т.к. никакого) > Метасимвол s (некий "собирательный образ" ) учитывает переводы строк, символы табуляции, вобщем, все "неприятности". Не уверен чт
о имеется ввиду под "неприятности", но в PCRE он значит все "пробельные символы" (пробелы, вертикальная и горизонтальная табуляция... ) > Модфикатор s указывает, что поиск производится с учетом метасимволов. Извините, но совершенная ерунда. Модификатор s значит только что точке (.) (значит "любой символ") будедт также соответствовать и перенос строки, без него он единственный кто исключается из "любого". Т.к. точка не используется в данном регулярном выражении,
также совершенно бессмысленен.
Мануалы: По модификаторам: http://php.net/reference.pcre.pattern.modifiers Вообще по регулярным выражениям в ПХП (почти соответствует pcre, немного обрезан но весьма толковый. Наа русском - сокращенный вариант): http://php.net/regexp.reference
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 04.03.2009, 13:39
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245017 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.