«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/04/09 17:40:46  №1377929 1
Анончик помогающий с регулярками, глянь, где я не прав. https://ideone.com/S53UAG Решение я обосновал так, с начала я выкидываю к хуям все кроме цифр. Теперь нам не принципиально что в начале, затем проверяем число знаков и наконец проверяем что в начале 7 или 8, потом сразу же меняем 7 на 8мь. Я не могу понять почему на этапе проверки первых цифр происходит ошибка.
Ответы: >>1378083 >>1378169
Аноним 2019/04/09 19:18:46  №1377979 2
>>1353705 (OP)
Ох уж эта ебля с настройками, не могу направлять запросы через ФронтКонтроллер. Если на прямую к нему обращаться, то создает роутер и выполняет функцию из класса роутера. Чего я только не делал. И закидывал в стандартный путь, и новый адресс делал, и разные htaccess создавал, и переустанавливал ос. Уже не понимаю куда смотреть.
php7.2 Апач2.4 на виртуалке ubuntu 18.04.
Это в .htaccess:
"AddDefaultCharset utf-8

RewriteEngine on
RewriteBase /
RewriteRUle ^(.*)$ index.php"
Ответы: >>1378163 >>1378169
Аноним 2019/04/10 05:37:31  №1378169 3
>>1377979

А в чем проблема? В том, что не вызывается index.php?

Для начала проверь, включено ли в конфиге Апача выполнение htaccess:

- https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride
- https://www.linode.com/docs/web-servers/apache/how-to-set-up-htaccess-on-apache/

Не забудь, что после изменения конфига надо перезапустить Апач.

Далее, глянь в лог ошибок веб-сервера (/var/log/apache2 или /var/log/httpd). Посомтри, нет ли там чего странного.

>>1377929

Там в начале может быть либо +7, либо 8. Если просто 7 или +8 - то это ошибка. Также, выкидывать лучше не все, а только пробелы, скобки, минусы. Ну а еще лучше все же написать полноценную регулярку для проверки:

- в начале идет 8 или +7
- затем выражение (одна цифра, за ней любое число скобок, минусов, пробелов), которое повторяется 11 раз

Далее, у тебя ошибки в коде:

> \tif (mb_substr ($clearNum,0,1)=='/7|8/'){

Знак "равно" просто делает посимвольное сравнение, он не интерпретирует выражение как регулярку. Тебе тут нужен preg_match.
Ответы: >>1378186 >>1378542
Аноним 2019/04/10 16:28:15  №1378531 4
Вопрос по симфони.
Допустим юзер отправляет через форму какие-то данные. Сразу, как эти данные приходят в контроллер мне нужно сделать с ними некоторую работу, которая требует времени. Результат этой работы возвращать юзеру не нужно. Но нужно вернуть ему сообщение, типа "мы вас услышали. спасибо. идите нахуй". Как мне это сделать, не дожидаясь, пока вот та времязатратная работа завершится?
Ответы: >>1378539 >>1380459
Аноним 2019/04/10 16:41:58  №1378542 5
Ответы: >>1378586 >>1380459
Аноним 2019/04/10 18:01:45  №1378586 6
>>1378542
Буквы-флаги. В начали урока по регуляркам. Вместо /[a-zA-Z]/
можно написать /[a-z]/i
Если используешь русские буквы в выражении - ставь флаг 'u'.
/[а-яё]/iu
Так же у тебя по условию нужно проверить является ли строка номером. У тебя она является номером, хотя содержит "позвать Люсю".
Ответы: >>1378663
Аноним 2019/04/10 18:14:04  №1378602 7
Не могу понять что делает <<<? В книге написано что это какой то маркер но больше нихуя не написано, помогите плиз.
Ответы: >>1378611
Аноним 2019/04/10 18:18:09  №1378611 8
>>1378602
Нагуглил что это heredoc какой то. Я так понимаю, это аналог htmlского <pre>?
Ответы: >>1380459
Аноним 2019/04/10 18:44:18  №1378663 9
>>1378586
Окей понял. За флаги спасибо, а то только через 101 проверил, а там автоматом проверяется. Перепсал с первичной проверкой любого текста. Но теперь почему-то выражение принимается в любом случае вне зависимости от того есть в нем буквы или нет (я писал только русские). http://sandbox.onlinephpfunctions.com/code/cce3879a8929314360111bd939069d09b7020410
Ответы: >>1378756 >>1380459
Аноним 2019/04/11 13:30:32  №1379192 10
Как правильно создавать константу? В видеоуроках говорят что const CONSTANT, а в кнгиге define('CONSTNAME', value).
Где истина?
Ответы: >>1380459
Аноним 2019/04/13 18:19:38  №1380459 11
>>1378663

> Но теперь почему-то выражение принимается в любом случае вне зависимости от того есть в нем буквы или нет (я писал только русские).

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

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

>>1378542

Чтобы регулярка корректно работала с нелатинскими символами в кодировке utf-8 (а у тебя она), надо ставить флаг u. Иначе регулярка думает, что перед ней текст в 1-байтовой кодировке, а русская буква - это 2 отдельных символа (так как она кодируется 2 байтами в utf-8). Описано тут: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

>>1379192

const появился в PHP7, а книга наверно написана раньше. Лучше использовать const.

>>1378611

Это способ записи больших строк. Можно использовать кавычки, а можно heredoc. Ты бы документацию вместо книги почитал бы, например:

- https://www.php.net/manual/ru/language.types.string.php
- https://ru.wikipedia.org/wiki/Heredoc-%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81

Главный плюс в том, что в нем можно использовать кавычки и/или спецсимволы без экранирования, что удобно. К тегу <pre> он отношения не имеет.

>>1378531

Есть очереди задач для этого.
Ответы: >>1381843 >>1381844
Аноним 2019/04/15 14:00:02  №1381844 12
>>1380459
>Есть очереди задач для этого.
Ты имеешь в виду какой-нибудь rabbitmq? Из пушки по воробьям же. Мне нужно просто отправить юзеру view сразу, до того как долгий таск завершится. Я до этого писал всякую шляпу на fat free framework и там есть функция abort, которая делает нужное
https://fatfreeframework.com/3.6/base#abort
Я вполне способен залезть в исходники и посмотреть, что она там делает и перенести это в симфони, но ведь скорее всего это уже там есть и мой велосипед всяко будет хуже.