9 Php функцій, які потрібно знати всім

Скільки б ми не використовували PHP, все одно спливають деякі функції, про які ми навіть не чули. Деякі з них були б нам дуже корисні. Я створив невеликий список корисних функцій, які повинні бути в арсеналі кожного PHP програміста.

1. Створення функцій зі змінним числом аргументів

Швидше за все, ви вже знаєте, що PHP дозволяє нам створювати функції з необов'язковими аргументами. Зараз я покажу функцію, в якій число аргументів може змінюватися від випадку до випадку.

Але для початку, згадаємо як ми створюємо функції звичайним чином:

Тепер подивимося на те, як можна написати функцію з необмеженою кількістю аргументів. Для цього буде використовувати метод func_get_args ():

2. Використовуємо Glob () для пошуку файлів

Часто назви функцій говорять самі за себе. Такого не можна сказати про функції glob ().

Якщо не вдаватися в подробиці, її функціональність схожа з методом scandir (). Вона дозволяє знайти необхідний файл за шаблоном:

Для знаходження файлів декількох типів треба писати так:

Так само можна в шаблоні вказати шлях:

Для того щоб отримати повний шлях до документу за допомогою метод realpath ():

3. Інформація про використовуваної пам'яті

Якщо ви будете відслідковувати кількість пам'яті, яке з'їдається на роботу ваших скриптів то, напевно, частіше будете їх оптимізувати.

У PHP існує потужний інструмент відстеження використовуваної пам'яті. У різних частинах скрипта навантаження можуть бути різні. Для того щоб отримати значення використовуваної пам'яті в даний момент, нам слід використовувати метод memory_get_usage (). Для фіксації максимальної кількості використовуваної пам'яті використовуємо memory_get_peak_usage ()

4. Інформація про процесор

Для цього необхідно використовувати метод getrusage (). Але врахуйте, що на Windows ця функція працювати не буде.

Картина, викладена вище, буде зрозуміло тим, у кого є досвід в системному адмініструванні. Для всіх інших пропонуємо розшифровку:

  • ru_oublock: кількість операцій блокової записи
  • ru_inblock: кількість операцій блочного читання
  • ru_msgsnd: кількість відправлених повідомлень
  • ru_msgrcv: кількість прийнятих повідомлень
  • ru_maxrss: максимальний розмір невивантажуваного набору
  • ru_ixrss: загальний обсяг пам'яті, що
  • ru_idrss: загальний обсяг неподільні даних
  • ru_minflt: кількість використовуваних сторінок пам'яті
  • ru_majflt: кількість помилок відсутності сторінок
  • ru_nsignals: кількість прийнятих сигналів
  • ru_nvcsw: кількість перемикань контексту процесом
  • ru_nivcsw: кількість примусових перемикань контексту
  • ru_nswap: кількість звернень до диска при підкачування сторінок
  • ru_utime.tv_usec: час роботи в режимі користувача (мікросекунди)
  • ru_utime.tv_sec: час роботи в режимі користувача (секунди)
  • ru_stime.tv_usec: час роботи в привілейованому режимі (мікросекунди)
  • ru_stime.tv_sec: час роботи в привілейованому режимі (секунди)

Для того щоб дізнатися які ресурси вашого процесора використовуються скриптом, вам необхідно значення 'user time' (час роботи в режимі користувача) і 'system time' (час роботи в привілейованому режимі). Ви можете отримати результат як в секундах, так і в мікросекундах. Для того щоб перетворити загальна кількість секунд в десяткове число, вам необхідно розділити значення мікросекунд на 1 мільйон і додати до значення секунд.

Заплутано якось. Ось приклад:

Хоча виконання скрипта зайняло близько 3-х секунд, процесор не був сильно навантажений. Справа в тому, що при виклику (sleep) скрипт практично не споживає ресурсів процесора. Взагалі існує безліч завдань, які займають чимало часу, але при цьому не використовують процесор. Наприклад, очікування операцій пов'язаних з диском. Так що ви не завжди використовуєте процесорний час в своїх скриптах.

Робота скрипта зайняла 1.4 секунди процесорного часу. В даному випадку, час системних викликів взагалі низька.

Час роботи в привілейованому режимі (System Time) - це час, який процесор витрачає на виконання системних запитів до ядра від імені програми. приклад:

Тепер системного часу витрати набагато більше, ніж в попередньому випадку. Все завдяки методу microtime (), який використовує ресурси системи.

Однак слід зазначити, що виведене час може бути не точним, тому що в даний момент часу ресурси процесора використовуються і іншими програмами, що в результаті може дати невелику похибку.

5. Магічні константи

У PHP існує безліч магічних констант, таких як номер поточного рядка (__LINE__), шлях до файлу (__FILE__), шлях до каталогу (__DIR__), ім'я функції (__FUNCTION__), ім'я класу (__CLASS__), ім'я методу (__METHOD__) і простору імен (__NAMESPACE__).

Всі ми їх розглядати не будемо. Подивимося тільки парочку:

Використовуйте __LINE__ при налагодженні скриптів:

6. Генерування унікальних ID

Бувають такі моменти, коли вам треба згенерувати унікальну рядок. Безліч раз я бачив, що для вирішення цього завдання використовують функцію md5 ():

Але насправді для цих цілей в PHP є спеціальна функція uniqid ()

Неозброєним поглядом можна помітити, що перші символи м'яко кажучи схожі ... Так відбувається через те, що даний метод використовує час сервера для генерації символів. Це навіть корисно, тому що всі згенеровані значення виходять в алфавітному порядку, що дає можливість швидко їх сортувати.

Для того щоб зменшити шанси отримання дубліката, ми можемо додати префікс або використовувати другий параметр (збільшить кількість символів):

Цей метод генерує рядки розміром менше, ніж md5, тим самим ви зможете заощадити місце.

7. Серіалізация

Вам коли-небудь доводилося зберігати комплексні дані в базі або в файлі? Для того щоб конвертувати об'єкт в рядок в PHP передбачена спеціальна функція.

Ось так ось працюють ці функції. Однак через бурхливе зростання популярності JSON, в PHP 5.2 були додані 2 методу json_encode () і json_decode (). Їх робота схожа з serialize ():

8. Стиснення рядків

Коду ми говоримо про стиснення, то на думку відразу ж приходять архівні файли в форматі ZIP. PHP надає можливість стиснення довгих рядків без всяких файлів.

У наступному прикладі продемонструємо роботу функцій gzcompress () і gzuncompress ():

У наших силах зменшити обсяг тексту на 50%. У цих же цілях можна використовувати методи gzencode () і gzdecode (), які використовують інший алгоритм стиснення.

9. Виконати перед завершенням

У PHP існує функція register_shutdown_function (). яка дозволить вам виконати якийсь код перед завершенням роботи скрипта.

Припустимо, ви хочете дізнатися якусь інформацію ... Час роботи скрипта:

На перший погляд це може здатися тривіальним завданням. Для цих цілей, ви можете помістити код в кінці файлу. Однак якщо перед цим десь спрацює функція exit (), цей код ніколи не спрацює. Так само, він не спрацює якщо на сторінці буде помилка або користувач перерве завантаження сторінки (натиснувши на відповідну кнопку в своєму браузері);

При використанні методу register_shutdown_function () код виконається в будь-якому випадку:

PHP це ціла планета, яка не припиняє нас дивувати своїм вмістом. А що думаєте ви про дані функції?

5 останніх уроків рубрики "PHP"

Коли мова йде про безпеку веб-сайту, то фраза "фільтруйте все, екрануйте все" завжди буде актуальна. Сьогодні поговоримо про фільтрації даних.

  • Expressive 2 підтримує можливість підключення інших ZF компонент за спеціальною схемою. Не всім подобається це рішення. У цій статті ми розповімо як поліпшили процес підключення декількох модулів.

  • Припустимо, що вам необхідно відправити якусь інформацію в Google Analytics з серверного скрипта. Як це зробити. Відповідь в цій замітці.

  • Підбірка з декількох видів PHP пісочниць. На деяких ви в режимі online зможете потестить свій код, але є так само рішення, які можна впровадити на свій сайт.

  • 9 Php функцій, які потрібно знати всім

    За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!

    9 Php функцій, які потрібно знати всім

    9 Php функцій, які потрібно знати всім

    Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

    9 Php функцій, які потрібно знати всім

    Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

    9 Php функцій, які потрібно знати всім

    Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!