PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (776): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 11640
Мелкий Отправлено: 10 Августа, 2018 - 23:38:45 • Тема: Сессии • Форум: Вопросы новичков

Ответов: 2
Просмотров: 39
Redis или memcache. Под оба есть штатные session handler.

Над хранением сессий не в файловой системе надо думать, когда у вас 1000 запросов в секунду. Да и то лишь только потому, что вы уже вряд ли будете умещаться в одну железку под PHP, а не потому что упрётесь в ФС (хинт: php нативно умеет распихивать сессии по дереву директорий, чем можно успешно обойти замедления файловой системе при значительном числе файлов в одной директории).
Мелкий Отправлено: 08 Августа, 2018 - 10:40:13 • Тема: куда девается переменная? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 87
Прочитайте всё-таки статью. Она не длинная и именно в тему.
Вы именно не понимаете когда и как работает PHP. А умирает он вместе со всеми переменными ещё до того, как вы увидите сгенерированную страницу. И запускается заново с нуля, когда вы просите сгенерировать ещё одну страницу.
Мелкий Отправлено: 07 Августа, 2018 - 15:22:56 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков

Ответов: 21
Просмотров: 210
Ответ простой: да, чтобы не было граблей всё должно быть в utf8. utf8_general_ci - это collate в mysql для utf8

Ответ правильный:
Doox911 пишет:
Т.е. корректно будет работать если html, скрипты и база в UTF-8?

Для PCRE будет уже достаточно если поисковый паттерн и текст в котором ищем в UTF8, всё остальное может быть в других кодировках.
В рамках своего проекта чтобы не иметь головной боли с кодировками - да, использовать utf8. При необходимости в общении с внешними системами на каких-то других кодировках - перекодируйте данные через iconv или mb_convert_encoding сразу при приёме данных.

Doox911 пишет:
UTF-8 и utf-8_general_ci одно и тоже?

Скорей всего речь о mysql и тогда правильный ответ будет на настоящее время - лишь частично.
utf8_general_ci - это правила сравнения и сортировки для utf8, данные для этого соответственно лежат в utf8. А дальше исторический казус:
Изначально utf8 был от 1 до 6 байт на символ, но в mysql решили что им хватит 3 байт и тихо ломали не влезающие в 3 байта символы.
Потом utf8 стандарт урезали до 4 байт максимум.
Потом в Mysql 5.5.(что-то) сделали грубый костыль - кодировку названную utf8mb4, который в отличии от исторически дефектного в mysql utf8 умеет в 4 байт на символ и соответствует стандарту. В будущем в mysql алиас кодировки utf8 планируют переключить с utf8mb3 на utf8mb4. Но до тех пор - utf8 как стандарт и utf8 как кодировка в mysql совпадают только на 75%.
Мелкий Отправлено: 07 Августа, 2018 - 10:43:10 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков

Ответов: 21
Просмотров: 210
Doox911 пишет:
сама поймёт в какой кодировке сравнивать

Это в принципе невозможно.
Если кодировка текста не известна заранее - то её можно пытаться только угадать. Потому что байты-то везде одни и те же, а кодировок - суть таблиц преобразования произвольного байта в представление на экране - огромное множество наплодили.

Флаг u подписан в мануале и маппится в коде в PCRE_UTF8, т.е. регулярка будет работать исходя из предположения, что и паттерн и текст переданы в utf8
Мелкий Отправлено: 25 Июля, 2018 - 17:08:49 • Тема: Помогите подключится к БД с параметрами кодировки UTF-8 • Форум: Вопросы новичков

Ответов: 5
Просмотров: 66
Это неправильный способ и в мануале отдельно написано почему: http://php.net/manual/en/mysqlin...epts.charset.php

PHP:
скопировать код в буфер обмена
  1. new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
Мелкий Отправлено: 25 Июля, 2018 - 15:36:11 • Тема: Помогите подключится к БД с параметрами кодировки UTF-8 • Форум: Вопросы новичков

Ответов: 5
Просмотров: 66
Не в DNS, а в DSN. Data Source Name в PDO так называется, строка-первый параметр в new pdo.
Мелкий Отправлено: 25 Июля, 2018 - 15:00:12 • Тема: Помогите подключится к БД с параметрами кодировки UTF-8 • Форум: Вопросы новичков

Ответов: 5
Просмотров: 66
charset=utf8 в DSN добавьте и всё.
Мелкий Отправлено: 25 Июля, 2018 - 12:07:19 • Тема: PHP-разработчик (Yii2, PostgreSQL) • Форум: Работа

Ответов: 2
Просмотров: 66
Страна-то какая?
Мелкий Отправлено: 25 Июля, 2018 - 11:41:41 • Тема: Уйти ли из PHP? • Форум: Программирование на PHP

Ответов: 1
Просмотров: 58
Truedefiner пишет:
пишут тот код который можно найти в исходниках symfony

А вы ковыряли исходники той же doctrine? Нещадно протекающие абстракции от того единственного, от чего эта штука должна была абстрагировать; query builder, написанный явно из предположения что у вас бесплатный и бесконечный CPU - имея уже готовую структуру запроса выкидывать её полностью, генерировать DQL и заново разбирать AST, чтобы по нему построить SQL и дать ещё раз его распарсить базе.
У самой symfony тоже можно понаходить странные вещи. Да ей и общей тяжеловесности в общем-то хватает.
Про laravel не помню, давно последний раз видел.

Truedefiner пишет:
Может у программистов на других языках таких проблем нет (java, Perl, Ruby)?

Я некоторое время назад случайно переквалифицировался в postgresql DBA и теперь встречаюсь со множеством разных проектов от кровавого java до хипстерского nodejs, от перла, питона и руби до go.
Со стороны работы с базой - совершенно никакой разницы. Одни и те же подходы и ошибки. Разница только в том, насколько всякое гвоздями прибитое orm мешает со своими внезапными фокусами.
Всякое orm - вообще отдельная боль. Сгенерированный запрос за 100мб размером, сожравший несколько десятков гигабайт RAM и вызвавший рестарт с OOM - это из практики. Коллеги говорят как-то и гигабайтный запрос видели.
А на одной конференции человек из зала порадовал историей, как не в меру умный orm сгенерировал рекурсивный cte. Без условия выхода из рекурсии.

У меня что-то около 7 лет в коммерческой разработке на PHP, квалификация уровня "не постесняюсь порыть исходники, включая исходники самого PHP". Переквалифицироваться не планировал, но не смог пропустить письмо лично от Максима Богук.
Есть ли жизнь в коммерческой разработке без костылей - сильно сомневаюсь. На любом языке.
Мелкий Отправлено: 23 Июля, 2018 - 12:19:55 • Тема: как выполнить sql запрос из цикла while • Форум: Вопросы новичков

Ответов: 10
Просмотров: 176
Непосредственно внутри table не может быть form, кстати говоря. Внутри td - может быть.
Ваш браузер может ошибочную разметку переписывать странных образом.

И, опять же, где вы передаёте желаемый num_id с формы?
Возможно, у вас опыт разработки десктоп-приложений и вы просто не понимаете, когда именно работает php и соответствующую модель запрос-ответ, а не интерактивного приложения?
Мелкий Отправлено: 23 Июля, 2018 - 11:52:58 • Тема: как выполнить sql запрос из цикла while • Форум: Вопросы новичков

Ответов: 10
Просмотров: 176
myvin пишет:
при нажатии информация нужная попадает в базу для всех строк разом

Потому что именно это поведение и написано у вас в скрипте.
Для каждой строки проверяется, пользователь нажал кнопку? (любую кнопку!) Если да, то обновим строку. Каждую строку.

Что делать:
miketomlin пишет:
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.

miketomlin пишет:
Значение $ident должно как-то передаваться в обработчик.

И обновлять только переданную с формы строку.
Мелкий Отправлено: 20 Июля, 2018 - 09:57:20 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков

Ответов: 21
Просмотров: 210
Ничего не изменится, если файл скрипта сохранён как utf8.
"\xd1\x82" - это ровно 'т' и есть.
Мелкий Отправлено: 18 Июля, 2018 - 12:44:54 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков

Ответов: 21
Просмотров: 210
Doox911 пишет:
\xd1\x82 - этo байты?

Это байты в распространённой hex записи.
Пользуясь какой-нибудь таблицей кодирования можно попробовать представить в виде символов.
Для utf8 это будет один символ т, для cp1251 - строка из двух символов: "С‚", строка "Ń‚" в cp1250 и так далее по куче разных кодировок с различным эффектом.

Doox911 пишет:
Не совсем понял что за d0 b0:

Тоже байты в hex виде. Без \x и с пробелами обычно читается легче человеком.
Мелкий Отправлено: 18 Июля, 2018 - 12:31:49 • Тема: Как лучше производить валидацию? • Форум: Вопросы новичков

Ответов: 9
Просмотров: 92
Эх, сейчас соберу.

Строгое сравнение IS_IDENTICAL опкода приходит сюда: https://github[dot]com/php/php-src/b[dot][dot][dot]perators[dot]c#L2112
Что видим:
- проверка на типы в самом начале
- если обе строки показывают в одно место в памяти - то они идентичны и можно не сравнивать
- иначе сравниваем их длины в байтах
- если длина идентичная, то дёргаем стандартную C функцию memcmp по байтовому сравнению участка памяти двух указателей с указанной длиной.

Unicode - да, стандарт.
Кодировки UTF8, UTF16, UTF32 - возможные представления этого стандарта.
Мелкий Отправлено: 18 Июля, 2018 - 11:57:45 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков

Ответов: 21
Просмотров: 210
Зависит от того что считать корректным. С точки зрения механики - все результаты корректны.

Мелкий пишет:
var_dump(preg_match("~[абв]~", "где"));

Обозначу для краткости символы:
а состоит из байтов 1 и 2 (реально d0 b0)
б - 1 и 3 (d0 b1)
в - 1 и 4 (d0 b2)
г - 1 и 5 (d0 b3)
д - 1 и 6 (d0 b4)
е - 1 и 7 (d0 b5)
да, d0 у них у всех реально совпадает. В итоге получаем без модификатора u выражение:

Именно так, сравниваем байты, в символьной маске не 3 объекта для сравнения, а 6, из них 3 одинаковые. Есть у нас байт 1? Есть, потому и получаем совпадение.

С модификатором u рассматриваем именно символы, потому в символьной маске будет только 3 объекта. И соответственно отсутствие совпадения.

Doox911 пишет:
при перемене мест символов?

При перемене мест байт. Я специально воспользовался hex записью чтобы проиллюстрировать и дописал комментарий, что такая изменённая последовательность байт вообще недопустима в utf8.

Страниц (776): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB