Pull to refresh
0
0
Send message

Регулярные выражения (regexp) — основы

Reading time21 min
Views973K

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Total votes 50: ↑42 and ↓8+43
Comments76

Как должны выглядеть модели?

Reading time11 min
Views6.8K

image


Наверняка все слышали что про модели, MVC, AR и другие замечательные слова.


Но все ли до конца понимают, что эти слова означают?
Все ли понимают что такое модель и как она должна выглядеть


Давайте порассуждаем (и не только) на эту тему.

Читать дальше →
Total votes 12: ↑4 and ↓8-3
Comments56

Вытаскиваем видео с камеры по DVRIP с помощью PHP

Reading time13 min
Views8.1K
В прошлой статье я обещал показать скрипт, которым тяну видео с камеры и, хотя с тех пор прошло все же некоторое количество времени, обещания же нужно выполнять. Вот я и выполняю.

Так уж вышло, что с асинхронностью в мире серверного web ассоциируется все что угодно, но не PHP.

Ну потому что, ну вы знаете, вот эта умирающая модель, утечки памяти, да и вообще в PHP из коробки нет ничего, кроме stream_select() и stream_set_blocking().

Где-то там, на PECL, есть какой-то libuv, который в принципе всего лишь обертка для сишных функций оригинальной библиотеки, поэтому его использование как есть бросает вам некоторые вызовы. Да и вообще, кто в здравом уме будет этим заниматься?

Но если мы перестанем жить в мире PHP4 и немного вернемся в современные реалии, то увидим, что за последние годы дела несколько изменились. У нас появились такие интересные инструменты как ReactPHP и AmPHP, компоненты которых хорошо покрывают функционал Node.js, а наличие генераторов позволяет писать асинхронный код в удобном стиле, подобном async/await, избегая всех вот этих бесконечных коллбеков в коллбеках и километровых цепочек .then().then().then().

Так что поэтому сейчас, как мне кажется, практически нет тех задач из мира Node.js, которые не мог бы решить PHP. Но если таковые еще остались, то все упирется только в наличие каких-то отдельных библиотек, а не отсутствие возможностей как таковых.
It may surprise people to learn that the PHP standard library already has everything we need to write event-driven and non-blocking applications. We only reach the limits of native PHP’s functionality in this area when we ask it to poll thousands of file descriptors for IO activity at the same time. Even in this case, though, the fault is not with PHP but the underlying system select() call which is linear in its performance degradation as load increases.

amphp.org/amp/event-loop
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments16

Information

Rating
Does not participate
Registered
Activity