edogs software

edogs software
Рейтинг
775
Регистрация
15.12.2005
Должность
Программирование
serjoo:
Как такое быть может?
На странице есть другие img'и и там width="123" работает, а вот в другом блоке ни в какую.

width имеет приоритет ниже чем px

Поэтому если у Вас в стилях где-то прописано нечто вроде img { width:123px; } , то прописывать width=123 бесполезно.

Например для того блока где не работает может быть указано нечто вроде .blockclass {img: 123px;}

curl используйте.

file_get_contents пораженчество.

Miracle:
не раотает обратное преобразование html2bb , конкретно для спойлера.
не смотря на то что сама регулярка https://regex101.com/r/dS7nT0/5 работает.

А на фига Вам html2bb вообще? Это конечно альтернативный совет, но сохраняйте просто исходник в ббкодах если уж Вам так ббкоды нужны. Тем более как правило обратное преобразование редко однозначно выполнить можно, обязательно какая-нибудь ерунда примешивается.

Miracle:
Подумал если рассматривать открывающися эл-т как цельную единицу, то не вижу проблемы описанной вами, но, может и ошибаюсь.! ))

В "стандартном" реге подразумевается, что закрывающий тэг нельзя найти в открывающем наборе тэгов. Поэтому 1 к 1 не получится.

Miracle:
к сожалению с preg_replace_callback не работает... странно конечно.

Не уловили что именно не работает, но если важно разобраться - приведите код "как есть" и укажите на конкретную проблему.

Сделать отдельную страницу где будет только калькулятор.

Впрочем, если Вы эстет, то можно по событию клика на печати применять стили прячущие все кроме калькулятора, но это извращение.

Bonks:
А как быть если программист сказал, что делов на 3 часа работы, срок ставит 3 дня

Это наиболее правильный ответ программиста если Вы внезапно сваливаетесь ему на голову.

3 часа - это чистое время работы. Возможно, еще час уйдет на внезапности и уточнения. Итого часа 4.

Найти 4 часа в занятом графике не всегда легко, но за 3 дня вполне реально.

Если у прогера неделя вперед по 4 рабочих часа каждый день расписана - то может и 10 дней уйти на поиск этих 4 часов:)

Bonks:
и растягивает их потом аж на целую неделю?

Это уже ненормально, если без предупреждения и все такое. Такое сразу в сад.

Miracle:

https://regex101.com/r/oG3lT9/1
1. что я не понимаю.
почему одни скобки экранируются [ а вторые нет ]?
2. я понимаю что такое ?: как | и даже немного ?!, но я не понимаю но я все же не понимаю логики данного разбора. Начало и конец- понятно, вырезали. (?R) как бы смыл тоже понятен, хотя не поняно почему стоит именно там, но вот смысл любой символ не скобка* или [ Негативный просмотр вперёд (с отрицанием) (это зачем тут?) /? - те как открытый так и закрытый тег. spoiler] - тоже понятно.
3. делаю обратную функцию https://regex101.com/r/dS7nT0/1 что-то не работает. подскажите где лажанул?

1а) Рег-то у Вас не точно такой, как в первом Вашем посте с регом. По смыслу вроде такой же, но по записи чуть другой (из-за экранирований). Советуем ограничителями выбирать не / и \ , а все же что-то более нейтральное - типа ~ . Что бы не заниматься еще экранированием ограничителей.

1б) По поводу "почему одни экранируются, а другие нет". Экранировать необходимо только когда есть неоднозначность. Множество может начинаться с [ , поэтому это спецсимвол. Но сам по себе ] ничего не значит (только как завершающий последовательность, ЕСЛИ она вначале была начата), поэтому его можно не экранировать.

2) "Любой символ не скобка" нужен что бы выбрать все символы, которые до этой скобки, т.е. до вероятного начала тэга. ?! нужен для того, что бы выбрать скобку "[" если она не является частью нужного Вам тэга. Про /? и дальше Вы правильно поняли.

3) Просто не получится, надо сильно думать. У Вас закрывающий и открывающий тэги в "прямом" варианте отличаются только наличием / , плюс открывающий тег не содержит в себе закрывающего. В "обратном" варианте и отличий больше и открывающий тэг содержит в себе часть закрывающего. Мы бы сделали проще, просто вырезали бы "<div class=splr-h>Спойлер: показать</div>" и все - на кой он нужен при обратном преобразовании?

siv1987:
edogs, мы о session_start. О том что после нее якобы нельзя больше отправлять заголовки.

Иногда нельзя. Смотря как что настроено.

siv1987:
А вот почему вы решили что дело в выводе, с display_errors и error_reporting у ТСа неизбежна была бы какая-то ошибка. Почему бы вначале не проверить условие при котором срабатывает редирект?

Проще сначал отсечь очевидное:)

А вообще у автора такой отборный кусок г-нокода, что он явно скопировал его откуда-то из учебника и тут вместо исправления ошибки - следовало бы начинать понимать что происходит.

Miracle:
рекурсивное решение на самом деле есть, но, почему-то мне не нравится, уж больно запутанное

Так это рекурсивное решение на рекурсивных регулярках, а не просто рекурсивная замена регуляркой.

Еще раз - мы бы обошлись без рекурсивных регулярок. Образцы решений можно взять хоть в phpbb, хоть в vbulletin - парсинг bbкодов уже заезженная тема.

Miracle:
думал тут предложат изящнее решение.
тогда прошу вашей помощи понять вот это регулярное выражение
#\
((?:[^[]|\[(?!/?indent])|(?R))+)\
#

не могу вставить регулярное выражение, не думал что с этим будет проблема здесь на форуме

Оно вставляется, просто не отображается:)

indent в начале и конце (с квадратными скобами и слэшами) задает условие, что каждое найденное выражение должно иметь вначале открывающий тэг и в конце закрывающий.

?: просто объединяет выражения (три) в скобках в одну группу, разделенных |, само по себе ничего не делает (ставится для экономии памяти, что бы этот результат отдельно не сохранялся при разборе рега).

Первое из этих выражений соответствует "не ["

Второе соответствует "[" после которой НЕТ indent или /indent (за такое условие отвечает ?! )

Третье соответствует полной регулярке (т.е. полной, как будто $0, с indent-ами и т.д.)

Т.е. первые два выражения это попросту говоря "все кроме индентов = либо не скобка, либо скобка после которой нет индента", а последнее как раз нужная Вам рекурсия (два индента - в начале и в конце, а так же что-то внутри).

siv1987, Satisfaction,

Вы вообще о чем?

session_start, разумеется, не закрывает никаких заголовков.

Но она, разумеется, может отправляет заголовки ( о чем недвусмысленно сказано в документации).

Поэтому если Вы не кэшируете буфер вывода (для чего мы и посоветовали ob_start), то header("Location после нее уже может быть работать и не будет.

---------- Добавлено 29.11.2015 в 22:58 ----------

Впрочем учитывая явную ньюбность автора - мы бы посоветовали Telez убедиться в том, что до <? у него нет ничего. Даже BOM символа UTF-8.

Можно открыть файл в другом редакторе, например, что бы проверить его отсутствие. Или сохранить в соответствующем формате.

Всего: 12159