«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/04/15 11:33:31  №1381775 1
Сап аноны, я тут новенький. Пару дней ковырял задачу на опечатки в регулярных выражениях были траблы с типами данных. Задачу решил, но хочется что-бы кто-нибудь оценил. Буду рад если скажете где и почему было написано хуёво и как сделать лучше. Алсо реквестирую каких-нибудь статей про типы данных в PHP.
Сама программа: https://ideone.com/rg3cAy
p.s. Старался в комментарии на английском. Может быть понятно, а может и нет.
Ответы: >>1381796 >>1394735
Аноним 2019/04/15 12:16:56  №1381796 2
Ответы: >>1381814
Аноним 2019/04/15 12:48:25  №1381814 3
Ответы: >>1381815
Аноним 2019/04/15 12:57:57  №1381815 4
>>1381814
Твои комментарии только мешают просмотру кода, для скриптов на 30 строк они точно не нужны, особенно на каждый пук. Плюс отделять нужно для лучшей читаемости кода пустыми строками блоки этого кода.
Какие вообще статьи про типа данных ты хочешь? Просто прочитай в пхп мануале про все типы существующие и результаты их сравнения.
Ответы: >>1381823
Аноним 2019/04/15 13:14:27  №1381823 5
>>1381815
Спасибо. Со стороны на код не смотрел. Действительно пиздец.
Так лучше: https://ideone.com/mdzzN7
А по типам данных. Что-нибудь про массивы и их нюансы(многомерные, как лучше обращаться к данным внутри них и т.д.) + про конвертацию данных в слаботипизированных языках для лучшего понимания. Я читал официальные мануалы, но все равно ощущение что, что-то не догоняю.
Ответы: >>1381842
Аноним 2019/04/15 13:54:07  №1381842 6
>>1381823
Сравнение разных типов и их преобразование я понял, просто написав все возможные варианты сравнения и операций с ними, потом смотрел, что выведет интерпретатор. Вообще в мануале хорошие таблицы есть,как будут сравниваться и преобразовываться типы.
Аноним 2019/05/06 05:58:39  №1394735 7
>>1382113

Для разбиения на строки хватило бы explode().

Переменные можно назвать лучше: afterSplit -> lines, stringAfter -> line, text1 -> characters

> $i<34

Это лучше бы вычислять, например, как макс. из длины строк, одной строкой, используя array_map() и max().

> $text1[$k][$i] != "\0"

В реальном тексте там нет символа с нулевым кодом и твоя проверка не имеет смысла.

Ты тут обращаешься к несуществующим элементам массива и это вызвает ошибки. Тебе стоило бы сделать проверку, что $k меньше чем число символов в текущей строке. У тебя есть проверка, но она некорректная (она сравнивает не с числом символов в текущей строке, а с числом в последней).

То есть тебе стоит сделать так:

если (k меньше чем число символов в данной строке) то вывести пробел.

>>1381775

Комментарии лучше писать над строкой, а не справа, а то слишком длинные строки выходят.

ё не входит в диапазон а-я и её надо писать отдельно.

> for ($i=(count($matches)-1); $i>=0; $i--) {

Не стоит заниматься такими микрооптимизациями, они ухудшают читабельность. Также, для обхода массива стоит использовать foreach().

> like in 20 line

Не стоит ссылаться на номера строк, так как они меняются при доработке кода.

Для замены букв по массиву замен есть функция strtr().

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

Про преобразования типов: https://www.php.net/manual/ru/language.types.type-juggling.php

>>1381740

Отдельный сервер нужен для больших объемов отправки.

>>1380807

Добавь еще экранирование выводимых данных.
Ответы: >>1395036
Аноним 2019/05/07 06:32:56  №1395036 8
>>1394735
>Отдельный сервер нужен для больших объемов отправки
Большой объём -- это сколько? Есть какое-то правило или просто "не работает в лоб -- поднимай сервер"?
Если я раз в два месяца отправляю пачку около 150 писем, нужен сервер?
Ответы: >>1395044
Аноним 2019/05/07 06:51:41  №1395044 9
>>1395036

По идее, если ты правильно настроил sendmail на своем сервере (а также, возможно, всякие антиспам меры вроде SPF итд, которые описываются в статьях по теме), то все должно работать. Антиспам нужен для массовых рассылок.

Отдельный сервер, как я понимаю, тоже нужен для массовых рассылок, чтобы ты не запускал бы у себя на сервере экземпляр sendmail на каждую отправку письма, а например слал бы их по SMTP на отдельный сервер и с него рассылал. Возможно, это позволяет ускорить передачу писем на рассылку. Соответственно, "массовые" здесь начинается с десятков-сотен тысяч писем и нужно, когда стандартная конфигурация не работает или работает недостаточно быстро.

Или, возможно, ты увлекся микросервисами и хочешь усложнить себе жизнь на ровном месте. Тогда тоже можно сделать отдельный сервер.

Соответственно, у меня ощущение, что ты либо неправильно понял статью, либо в ней ошибки.

Ответы: >>1395430
Аноним 2019/05/07 19:26:36  №1395430 10
>>1395044
Статью не читал, просто в своё время делали с корешем прогу на питоне для рассылки оценок и прочей инфы, чтобы сократить ёблю единственной девочке из учебного офиса нашего института, которая всем этим занималась. Тогда мы поднимали smtp-сервер, потому что вроде как других способов не нашли, а сейчас мне просто интересно, как это можно было бы сделать на пхп
Ответы: >>1395435
Аноним 2019/05/07 19:36:23  №1395435 11
>>1395430
>в своё время делали с корешем прогу на питоне для рассылки оценок и прочей инфы, чтобы сократить ёблю единственной девочке из учебного офиса нашего института, которая всем этим занималась
м-м-максимум куколдизм
Ответы: >>1395778
Аноним 2019/05/08 14:59:23  №1395778 12
>>1395435
Да, нам действительно нечем было заняться. До сих пор с болью вспоминаю, как мы пытались всё собрать в ехе-шник.