Скрипт обробки коду для вставки в матеріал сайту, в коментар до статті або в повідомлення на форумі

А ми хочемо просто бачити лістинг коду. По-людськи. Ось в цій статті хочу запропонувати просту ідею і, як результат, скрипт на основі неї, який дозволить обробляти деякі символи коду так, щоб браузер або система сайту не сприймала це як код і ні в якому разі його не вирізане і не виконувала. А виводила «текстом».

Суть ідеї задоволена проста. Деякі символи в тексті коду, мають спеціальне значення і тому сприймаються інтерпретатором, наприклад на стороні користувача, до виконання. До таких символів, наприклад, відносяться: трикутні дужки «<» и «>», Подвійна і одинарна лапка« "» і « '» і знак амперсанд - «». У той же час, для цих символів, передбачені т.зв. HTML-суті або мнемоніки (докладніше можна прочитати тут: Мнемоніки в HTML). Якщо спецсимволи коду перетворити в ці самі HTML-суті, то вони збережуть своє початкове «текстове» значення і не будуть сприйматися інтерпретатором як спецсимволи будь-якого коду. А це в свою чергу означає, що код, в якому ці спецсимволи замінені на мнемоніки - виконуватися не буде і ми зможемо його побачити у вигляді тексту. Що нам, в даному випадку, і потрібно. На практиці виявляється достатнім перетворити в мнемоніки перераховані вище 5 символів.

В php є спеціальна функція, яка як раз цим і займається, що перетворює зазначені символи в їх HTML-суті, це:

Згідно з документацією (htmlspecialchars ()) функція здійснює такі прості перетворення:

  • «» Перетвориться в '-'
  • «" »Перетвориться в '"' в режимі ENT_NOQUOTES НЕ перетворюється.
  • « '» Перетвориться в' # '' тільки в режимі ENT_QUOTES.
  • «<» преобразуется в '<'
  • «>» Перетвориться в 'gt;'

Форма для роботи.

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

PHP-обробник.

Тепер потрібно підготувати php-код безпосередньо обробника введеного коду. Він може бути наприклад таким:

До того ж, на першому етапі перетворення вставимо параметр «ENT_QUOTES» - це потрібно чтби перетворювалися на всякий випадок і одинарні лапки, і подвійні.

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

Тоді підсумковий код форми з обробником прийме такий вигляд:

Ось і все готово. Можна форму використовувати. Єдине - її потрібно тільки оформити по-гарному, але за традицією це робить кожен на свій розсуд, так як дизайнер я поганий :).