Вопрос № 161907: Добрый день. При открытии страницы page1.php данные из большого файла передаются в массив. Массив большой и необходимо некоторое время для его формирования. Другие клиенты сайта так же будут использовать этот массива при открытии с...
Вопрос № 161951: добрый вечер! стоит следующая задача: Создать сетевое клиентское приложение, реализующее обращения к www-серверу по протоколу HTTP и производящее обработку полученных
данных. Приложение должно выполнять следующую функцию - составить и вывести с...Вопрос № 161952: Всем здрасте! Подскажите плизз, каким образом, а если есть готовый скриптец - было бы вообще супер (разумеется с пояснениями), через пхп можно реализовать вычисление разрешения монитора пользователя? Заранее спасиба.... <img src="htt...Вопрос № 161966: Здравствуйте! Возникла пробл
емка при парсинге html страниц. Когда считавается ответ сервера таким образом: $sans = ""; while(!feof($fp)) { $sans .= fgets($fp); } и ищется вхождение строки preg_m...Вопрос № 162068: Здравствуйте. Моя проблема: -есть два объекта формы <select name="FIO"> и <input type="text" name="TITLE">; -в список <option> первого объекта делаю загрузку элементов из БД(MySQL); -после того...Вопрос № 162111: Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Присвоить значения элементам массива случайным образом. Отсортировать элементы массива. Вывести на печать в обратном порядке (по убыванию индексов). Я ...Вопрос № 162144: Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Тема. Работа с
файлами. Разработать сценарий, позволяющий инициализировать пользователя по трем категориям: зарегистрированный пользователь, пользователь,...Вопрос № 162160: Добрый день. не могу разобраться АаАаАааааа::: вместо того чтобы начать скачивать файл он вываливается в браузер бесконечным текстом!! это в опере а в эксплорере нет!! может нужны спец. команды какие ?? PHP и htm что могут с этим сде...
Вопрос № 161.907
Добрый день.
При открытии страницы page1.php данные из большого файла передаются в массив. Массив большой и необходимо некоторое время для его формирования. Другие клиенты сайта так же будут использовать этот массива при открытии страницы page1.php.
Подскажите пожалуйста код который позволял бы совместно, без сбоев, нескольким пользователям, пользоваться этим массивом. Как долго созданный массив находится в оперативной памяти сервера? Есть ли в сети по этой теме статьи?
Большое
спасибо.
Отправлен: 03.03.2009, 15:12
Вопрос задал: BakoTair (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Волков Алексей
Здравствуйте, BakoTair! Идеальным вариантом для совместной работы с массивами данных является по определению СУБД - если нет возможности использовать MySQL или PostgreSQL, попытайтесь использовать DBA или Flat files - nтам совместный доступ решен на уровне ПХП
--------- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
Ответ отправил: Волков Алексей (статус: 3-й класс)
Ответ отправлен: 03.03.2009, 17:00
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244953 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: Jan
Здравствуйте, BakoTair!
Каждый сценарий запускается в своём собственном потоке и со своей собственной памятью, а значит доступа к массиву в чужом блоке памяти не будет!!!
Для такого рода задач пользуются базами данных.
Ответ отправил: Jan (статус: 5-й класс)
Ответ отправлен: 03.03.2009, 23:49
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244991 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 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
Вопрос № 162.068
Здравствуйте. Моя проблема: -есть два объекта формы <select name="FIO"> и <input type="text" name="TITLE">; -в список <option> первого объекта делаю загрузку элементов из БД(MySQL); -после того как пользователь сделал выбор в selecte нужно автоматически в текстовое поле "воткнуть" соответствующее этому выбору значение, которое тоже должно браться из БД; Проще говоря - выбрал имя сотрудника и тут же увидел его должность. Буду очень признателен,
если объяснение будет на каком-нить примерчике. Спасибо :)
Отправлен: 05.03.2009, 08:55
Вопрос задал: Antonnestor2
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Евгений Иванов
Здравствуйте, Antonnestor2!
jQuery
$('наш select').change(function(){ $.ajax({url: адрес на сервере для взятия значения из бд, data: {selectId: $(this).val()}, dataType: 'json' success: function(data){ $('наш input').val(data['поле возврата. из БД']); } });
});
серверную часть напишите под свою архитектуру
в простейшем случае это будет: В обработчике
вашего адреса (указанного выше в функции) берём параметр selectId и делаем запрос в БД и возвращаем json-данные на клиент типа так die(json::encode(array('поле' => данные))); код условен, функции используйте соответствующие вашей архитектуре.
успехов.
--------- Знания - сила
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Москва Тел.: +79168790776 WWW:Eugene Ivanov ICQ: 214889076 ---- Ответ отправлен: 05.03.2009, 09:11
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245078 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Товарищ Бородин
Здравствуйте, Antonnestor2! Коль скоро коллега меня опередил с клиентской частью(я тоже "яростный" фанат jQuery ), попробую упредить Ваши вопросы с организацией серверной части.
Чтобы в таком варианте клиент получил данные, их надо соответствующим образом закодировать. Для этого можно использовать стандартную функцию PHP(если версия PHP = 5.2.x) - json_encode. Ей следует передать значение, получаемое из базы данных с помощью запроса.
То есть, посылаете значение из списка на сервер, делаете поиск строки, соответствующей данному значению(желаю Вам, чтобы значения в списке были уникальными). Пример запроса: SELECT `dolzhnost` FROM `table` WHERE `name` = 'Вася'; Где "Вася" - пересылаемое Вами из списка значение. По данному запросу должна выдаваться всего одна строка таблицы, то есть, поле name должно быть ключом таблицы. Замените слова dozhnost, table, name и "Вася" на
более подходящие Вашей ситуации. После этого передаете результат в функцию json_encode, а результат ее работы выводите через die, как Вам советовал Евгений Иванов. Если json_encode не срабатывает, можно привлечь стороннюю библиотеку для кодирования. Для этого можно использовать PEAR, Zend Framework. С первым помочь не смогу, ибо никогда с ним не работал, а если понадобится консультация по второму - всегда пожалуйста.
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ---- Ответ отправлен: 05.03.2009, 09:54
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245082 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Волков Алексей
Здравствуйте, Antonnestor2! ещё можно сделать это при помощи AJAX, но самый простейший вариант (при условии небольшого списка опций) - сделать в джава-скрипте выгрузку в массив "должностей" и по событию onChange select'a присваивать TITLE.value соотв. элемент заранее выгруженного массива.
Приложение:
--------- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
Ответ отправил: Волков Алексей (статус: 3-й класс)
Ответ отправлен: 05.03.2009, 09:58
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245084 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 162.111
Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Присвоить значения элементам массива случайным образом. Отсортировать элементы массива. Вывести на печать в обратном порядке (по убыванию индексов). Я к сожалению с PHP никогда не имел дела и не представляю, как это можно реализовать в данном языке.
Отправлен: 05.03.2009, 15:47
Вопрос задал: Антон Аз (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Волков Алексей
Здравствуйте, Антон Аз!
Принципиально ничем не отличается от других языков. генератор псевдослучайных чисел: rand ([ int $min ], int $max )
При вызове без параметров min и max , возвращает псевдослучайное целое в диапазоне от 0 до RAND_MAX. Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand (5, 15).
сортируем по какому признаку, в какой
последовательности? например, по возрастанию: ( http://docs.php.net/manual/ru/function.sort.php ) sort($massiv);
выводим наоборот:
for ($i=0; $i<count($massiv); $i++) { echo $massiv[(count($massiv)-1-$i)]."<br>
"; };
Приложение:
--------- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
Ответ отправил: Волков Алексей (статус: 3-й класс)
Ответ отправлен: 05.03.2009, 16:15
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245125 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Благодарю за ответ, то что нужно!
Отвечает: Hubbitus
Здравствуйте, Антон Аз!
Хм, что-то мне подсказывает что это учебное задание и решать его не сильно правильно? Впрочем, если Вам оченб хочется, то задание-таки элементарное:
Приложение:
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 05.03.2009, 16:28
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245127 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Да, пытаюсь научиться данному языку... поэтому скорее учебное... спасибо за ответ.
Вопрос № 162.144
Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Тема. Работа с файлами. Разработать сценарий, позволяющий инициализировать пользователя по трем категориям: зарегистрированный пользователь, пользователь, который неправильно ввел логин или пароль и незарегистрированный пользователь. Предоставляется 3 попытки, после 3 попытки выводится соответствующее сообщение". В данном случае по условию надо создать отдельный тхт файл, в который заносятся сообщения, например:
"зарегистрируйтесь"/"неправильный логин или пароль/ "добро пожаловать" и при различных комбинациях логина/пароля выводится то или иное сообщение с началом я разобрался, а вот как сделать 3 попытки к сожалению не могу "догнать". Начало в приложении:
Приложение:
Отправлен: 05.03.2009, 19:12
Вопрос задал: Антон Аз (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Alex_Nick
Здравствуйте, Антон Аз!
самый простой вариант - ввести в форму поле "num" например: <input type="hidden" id="num" value="<?php if(isset($_GET['num'])) echo ($_GET["num"]+1); else echo "1"?>">
PHP вставка проверит на этапе генерации формы, первая ли это попытка ввода данных. если первая - значение скрытого элемента управления будет 1, иначе - номер попытки заполнения данных.
Далее добавляем оценку значения
$_GET['num'] в обработчик формы: if((isset($_GET['num']))&&($_GET['num']>=3)) echo "Превышено количество попыток подключения"; else {?> //код вашей формы <?php } ?>
В приложении код файла.
С уважением, Alex
Приложение:
Ответ отправил: Alex_Nick (статус: 2-й класс)
Ответ отправлен: 05.03.2009, 19:31
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245146 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо
Отвечает: Товарищ Бородин
Здравствуйте, Антон Аз! Что касается трех попыток, то тут, я думаю, лучший вариант - назначить переменную сеанса. Идея такова: в начале страницы открываете сеанс с помощью функции session_start(), и при первом запуске назначаете переменную, скажем, $_SESSION['tries_number']. Код такой(примерно, естественно):
if (!isset($_SESSION['tries_number'])) { $_SESSION['tries_number'] = 1; } else { $_SESSION['tries_number']++; // если счетчик попыток
больше 3, то есть, пользователь исчерпал свои 3 попытки, то делаем какие-либо действия - предупреждение выводим if ($_SESSION['tries_number'] > 3) { // предупреждение } else { // даем пользователю возможность сделать еще одну попытку } }
С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ---- Ответ отправлен: 05.03.2009, 19:33
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245147 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 162.160
Добрый день. не могу разобраться АаАаАааааа::: вместо того чтобы начать скачивать файл он вываливается в браузер бесконечным текстом!! это в опере а в эксплорере нет!! может нужны спец. команды какие ?? PHP и htm что могут с этим сделать ??
Отвечает: Волков Алексей
Здравствуйте, Mihail Osabin! если файл на вашем сервере - заархивируйте его и выкладывайте архив ;-)
--------- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
Ответ отправил: Волков Алексей (статус: 3-й класс)
Ответ отправлен: 06.03.2009, 10:07
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245185 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Hubbitus
Здравствуйте, Mihail Osabin! >Может это нужно регулировать на уровне . Конечно. Нужно прописать AddType для желаемого типа. http://apache.tversu.ru/httpd-2.2-docs/manual/mod/mod_mime.html#addtype
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 06.03.2009, 12:15
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245195 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Jan
Здравствуйте, Mihail Osabin!
Если файл отдаётся сценарием, то смотрите в сторону функции header(), чтоб добавить в ответ http заголовок Content-Type: <тип вашего файла>. Если же это просто файлик для закачки, и другие браузеры его адекватно воспринимают, то дело в настройках Opera.
Идём: Инструменты-Настройки-(вкладка)Дополнительно-(пункт)Загрузки, там выбираете тип вашего файла и настраивете действие, которое Opera должна совершать.
Просто получив HTTP заголовок и увидев тип данных(Content-Type),
Opera выбирает действие, у вас видимо стоит простое открыть в браузере, а не сохранить на диске или воспользоваться сторонним плагином.
Ответ отправил: Jan (статус: 5-й класс)
Ответ отправлен: 06.03.2009, 22:46
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245256 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.