ПредишенСледващото

PHP: Отново за кавички, премахване на пропуските и постоянен PHP_INI_ *

Типични задачи изключени от което потребителят въвежда допълнителни пространства и / или етикет е решен в почти всеки професионален скрипт в PHP.

Премахване на тагове лесно strip_tags стандартна характеристика. но за да премахнете всички излишни интервали (включително между думи), не е достатъчно за нас стандартната тапицерия. най-малкото, което трябва да се използва регулярен израз:

(Или алтернативни експресия, както тук).

Само ще нерешен проблем с кавички. Уви, с настройките по подразбиране на PHP (включително, в текущата версия 5.3.1), цитати от мина, за да публикувате метод или да получите след като потребителят вход низ, докато те се показват на екрана може да бъде "проверен", т.е. "по- кодът ще стане # 92; ":

Въведете "word1" даде изход # 92; "word1 # 92;". За котировки настройки в PHP 4-5 версии вече отговарят на 3 променливи в бъдеща версия 6 на обещанието си да се премахне.

magic_quotes_gpc -., ако директивата е включена, всички герои " ". \ И NUL (нулев байт код) автоматично ще избяга обратно наклонена черта \. От версия 5.3.0 отхвърлена опция, ще бъде премахната в PHP 6.0.0. Не променяйте версии на софтуера по-стари от 4.2.3. Е активирана по подразбиране, това е настройка "виновен" в това, че ние се случи с думата.

magic_quotes_runtime - Ако е активирано, повечето функции, които връщат данни от база данни или текстов файл, ще се върнете към екрана същото обратно наклонена черта двойни и единични кавички. Но това не е всичко! Ако допълнително включени magic_quotes_sybase директива. Само тогава избягал единични кавички, а не наклонена черта и апостроф! За щастие, тази директива може да се контролира от софтуер, по подразбиране тя е изключена, във версията 5.3.0 е отхвърлена и ще бъдат премахнати в 6.0.0.

magic_quotes_sybase - както вече бе посочено, ако тази опция е включена, тя се променя правилата на апостроф екранировка, той се записва с допълнителен апостроф вместо наклонена черта, ако magic_quotes_gpc или magic_quotes_runtime позволено. Директива може да се контролира програмно изключена по подразбиране. Никъде не е написано, че тя е отхвърлена, но PHP 6.0.0 Директивата трябва да бъде премахната.

Както при всичко това да не се побърка и да гарантира правилното боравене с кавички?

Повече от веднъж вече съм дал код магия функция. които се занимават с този проблем, през последните години той се превърна тук като:

Това означава, че директивите 2, които можете да сложите в областта на софтуера, и пуснати (с дистанционно управление грешка на оператора "@" - за бъдещите версии), третата директива се проверява и обработва "безполезните" обратни наклонени черти, когато е необходимо. Последно изпълнява стандартни функции stripslashes. въпреки че не би "опитоми" замествания, както направих аз преди:

get_magic_quotes_gpc функция може също да се не е имал причина, ограничава стандарт ini_get:

Послепис В тази функция stripslashes подход изтрива комбинацията от символи # 92; ".? Дори там, където това е необходимо, например, в изречението Как да бъдем просто съм в такива случаи, на мястото на символа" # 92; "Нейната HTML-код # 92;

Понякога трябва да се реши, че обратният проблем - прожекция на "опасен", наклонена черта. Добави наклонена черта, ако magic_quotes_gpc е изключен, можете да конфигурирате стандартните функции addslashes. Но ако magic_quotes_gpc е активирана, не е нужно addslashes - получи двойно екраниране. защото тогава addslashes функция и така автоматично се прилага към всички данни от точка. POST. и БИСКВИТКАТА.

Сега цялото примерен код, се отстранява от входните тагове, всички допълнителни интервали между символите, не зависят от настройките на цитати и се връща, цитирани под формата стана така:

(В примера не е достатъчно, отваряне и затваряне на HTML тагове). Както можете да видите, преди да издаде маркер

текст като стойността на полето (Standard HTML синтаксис е необходима стойност = "стойността в двойни кавички"), ние заменя "критичната" за код на PHP <.>. . '' И съответната "HTML благосъстоянието". вещество. GT; и т.н. Аз я направих стандартна функция htmlspecialchars. Най-общо казано, това трябва да се прави винаги, независимо от кавичките настройките.

В същото време, ние отбелязваме още една важна техника, която начинаещи твърде често се пренебрегват. Преди да използвате който и да е ред в кода на скрипта генерира SQL-заявка не забравяйте след свързването към базата данни да се използва тази линия mysql_real_escape_string функция - да се превърне в стандартна референция на тази функция, всичко е много добре боядисани и защо :)

И накрая, да разберете какво да подаде php.ini директивата начини, по които могат да се променят лесно от така наречените "константи PHP_INI_ *", във връзка до всяка директива в Променлива колоната, написана от един от четирите стойности:

Определяне PHP_INI_ константи *

PHP_INI_USER - директива може да се зададе на потребителски скриптове от ini_set или в регистъра на Windows;

PHP_INI_PERDIR - директива може да се зададе в php.ini. Htaccess или httpd.conf;

PHP_INI_SYSTEM - директива може да се зададе в php.ini или httpd.conf файл;

PHP_INI_ALL - директива могат да бъдат инсталирани навсякъде.

Подкрепете проекта - споделете линка, благодаря!