Ребята, требуется нехитрая помощь, кто может, подскажите, пожалуйста, как реализовать: я получил из массива "дерево", теперь мне нужно вытащить из него пути к категориям и подкатегориям. Я достаточно хорошо знаю php, но совсем не дружу с логикой и математикой Мне нужно вместо:
Ссылка в дереве ([link]) и в двумерном массиве выглядит одинаково, вот так:
<ul><li><a href="">text</a></li></ul>
Ссылки я вытащу сам на каты, мне нужно просто пример, как вытащить айди категории, вместо которых я потом прегами заменю "href" (название категории на англ.) в ссылках на полный путь. Надеюсь, объяснил исчерпывающе
Если не готовый пример, то хотя бы логику обработки нужно, был бы очень благодарен.
По приведенному примеру не знаю как залогиниться или зарегистрироваться, у себя я делал через Гет-запросы всё... То есть href="/register_login.php?go=1".
Затем в файле register_login.php через переменную $_SERVER['REQUEST_URI'] можно отпарсить любым удобным способом нашу переменную $go: если $go==1, то echo 'register user' ELSE echo 'Form login user'.
Phantik, как я понял, garvey интересуется именно буферизацией на php на сервере, а не в браузере, БД или ФТП. Сам одно время этим интересовался, но полгода назад для меня это было сложно, сейчас созрел для понимания... Если есть опыт, приведите какой-нибудь простенький примерчик, чтоб неделю не гуглить впустую.
В ОЗУ тоже как-то кешировал и жал данные, но опыта у самого пока еще мало, могу наврать... Сам советовать пока ничего не буду. Эх, тема актуальная - тоже бы с удовольствием поучился.
if (!@file_put_contents($file,$dump)) echo '<div>Check CHMOD 0777!</div>';
} else echo 'Problem creat or write cash-file';
Пример из моего модуля... CHMOD у всех почти выключен, также и через подключение ФТП его тоже нельзя изменить (хостеры для своей безопасности все такие рюшки выключают), поэтому права 0777 ставить нужно вручную на кеш, здесь это опускаю.
А... понятно... у вас сложный вывод данных. В таком случае, нужно хотябы примеров 5-10, чтоб можно было составить маску с большой вероятностью совпадений и использовать, возможно, проверку нескольких масок, их массив.
Поскольку я не особо представляю как и что у вас там может выводиться (но суть ясна теперь), предлагаю сделать массив мусора из всех возможных вариантов, например, введите 5-10 вариантов совпадений, которые нужно удалить, а далее регуляркой уже проще будет пройтись по более простой маске и с вероятностью до 100% вытащить результат.
После такой предварительной обработки далее выборку делать будет проще. Можно для регулярок также создать массив из нескольких вариантов и пройтись через цикл, либо создать мега-универсальную регулярку на все случаи жизни, но нужно примеры ваши глянуть, чтоб на угад не писать.
П.С. "Под ред. !Иванова [С].В." - квадратные (возможно, круглые тоже) скобки могут присутствовать или это опечатка? Если этот мусор тоже есть, то и его нужно удалить (его вставить позже в результат всегда можно):
После обработки должно остаться только что-то типа: "Иванова С.В." или "С.В. Иванова". Обработать это дело уже не сложно: буква+точка, буква+точка и слово, с которого вырезаем только первые 2 (или 3-4, если англ.) буквы по регулярке. Если могут быть запятые или другие знаки (тире, например), преобразуйте их в точки, чтоб привести к единой упрощенной маске с помощью str_replace().
А в случае с прегами (preg_) выдается масив (aray), чтоб его распечатать, нужно указать, какой именно элемент массива нужен. Если нет круглых скобок - элемент массива только 1 - $array[0], если есть хоть одна пара круглых скобок, то эти самые скобки (их содержимое) заносится в элемент 2 - $array[1] и т.д. Т.е. нужно выводить так:
Если $str="Под ред. !Иванова [С].В.", то будет работать.
Также, если проблемы с кодировкой, то есть функция icon: сначала преобразуйте ее из утф8 в сп-1251, сделайте необходимые операции , затем опять преобразуйте для вывода или пишите сразу документ редактором, который сохраняет в утф8.
В общем, пока вы не определитесь что именно вам надо, трудно будет определиться как это лучше сделать Надеюсь, помог.
Да уж , в общем если у кого душа широкая - помогите . А я продолжу дальше искать "баги"
Если позволите, вмешаюсь
Во-первых, я столкнулся с подобной проблемой: русский текст регулярка берет от раза к разу когда как, т.е. иногда срабатывает, а иногда нет. Решил проблему так:
Нужно в отдельную переменную закинуть весь русский алфавит прописью и заглавными и не нужно никаких хексов и прочей ерунды. Выглядит так:
Капец, извелся уже... Опять на этом Глобале споткнулся, блин. Да, global нужно воткнуть во внутрь самой функции, а не ставить его снаружи, иначе одни и теже переменные делятся на локальные (внутри функции) и глобальные вне ее. Хорошо бы об этом в примере написать (на сайте php.su), а то там совсем всё простенько.
Решил поупражняться в пользовательских функциях, но как только стал переходить на них, сразу же получил ошибки при запросах в БД. Странно, но сами запросы написаны правильно и отдельно работают, например, если просто написать:
alpha_beta, спасибо за предложенную помощь, вроде всё сам решил, благодаря подсказке vitaliy_mad, за что тоже большое спасибо. Пробовал так тоже, но не работало... ошибка была в том, что неправильно всё писал - с маленькой буквы, а нужно... вместо "innerhtml" или "innerHtml" (как в примере) написать "innerHTML" и т.д. Предложенный вариант показывает 0.3 сек. работы скрипта, в то время, как мой вариант 6.0 сек., что более похоже на правду.
Всё гениальное оказалось таким простым Странно, что в сети эти скрипты находятся совершенно под другими запросами... (другие похожие примеры, смотрел сейчас "динамическая подгрузка").
Кстати, echo round(microtime()-$sts,3); не работает потому как выдается большая точность с microtime(true), да еще с экспонентой, а вот так (ниже пример) работает на ура, а без "true" не работает. Может, это кому еще пригодится
хм... во первых, время испольнения скрипта в начале страницы можно только динамически подгружать... в конце работы скрипты с помощью JavaScript.
Вот-вот... я и хочу вывести время динамически, но не могу найти нигде примерчик, хотя бы просто на пальцах...
Цитата:
далее:
isle пишет:
Функция sleep делает не паузу, а останавливает весь скрипт
а в чем разница?
Разница в том, что sleep делает не паузу, а полную остановку всех подгрузок, например, инклюды начнут грузиться только через 10 секунд, а не фоном... Т.е. вообще нет смысла в слипе... либо его нужно на 2 ветки делить: идет обыное фоновое выполнение скрипта, т.е. инклюды и т.д. и вторая ветка дерева, когда обрабатывается второй параллельный скрипт со слипом. Но в гугл- и яндексответах я это дело тоже не нашел, только общие советы, которые мне пока, как новичку, не понятны. Буду рад за любую подсказку.
Приветствую, форумчане. Появилась проблема в выводе необъявленной переменной. Но дело даже не в ней. Суть:
Нужно вывести переменную либо создав паузу и повторное выполнение проверки наличия нужного значения переменной, либо вывести переменную, например, через аякс, JavaScript, задав setTimeOut или как-то еще.
Наклепал некую обработку данных, затем хочу вывести время выполнения скрипта, но не внизу страницы, а вверху. Вот сам пример скрипта, который нужно сделать... Скрипт времени:
Понимаю, что примерчик тупой и if написан не в тему, поэтому прошу помощи, как правильно это сделать. В сети не нашел, запрос очень рейтинговый, многие ищут, но никто не дает ответов, может кто-то из форумчан с этим сталкивался? Функция sleep делает не паузу, а останавливает весь скрипт, поэтому здесь не катит, while создает зацикливание без паузы... как быть?