Как восставить текст из каракулей на PHP

PHP
Здравствуйте. Хочу представить Вашему вниманию небольшой, но полезный в некоторых случаях скрипт. Может кому пригодится.

Немного предисловия.
Случаются такие ситуации, в которых при смене кодировки между windows-1251 и UTF-8 текст, написанный на кириллице, преобразуется примерно вот в такие каракули: "Проверочный".
Если Вы не сохранили резервную копию перед изменениями, последствия могут быть необратимы. Но не в нашем случае :) Немного поработав над этим вопросом, я составил вот такой массив:
array
( 
    'Р°'=>'а', 'Р±'=>'б', 
    'РІ'=>'в', 'Рі'=>'г', 
    'Рґ'=>'д', 'Рµ'=>'е',
    'С‘'=>'ё', 'Р¶'=>'ж',
    'Р·'=>'з', 'Рё'=>'и',
    'Р№'=>'й', 'Рє'=>'к',
    'Р»'=>'л', 'Рј'=>'м', 
    'РЅ'=>'н', 'Рѕ'=>'о',
    'Рї'=>'п', 'СЂ'=>'р', 
    'СЃ'=>'с', 'С‚'=>'т', 
    'Сѓ'=>'у', 'С„'=>'ф', 
    'С…'=>'х', 'С†'=>'ц',
    'С‡'=>'ч', 'С€'=>'ш', 
    'С‰'=>'щ', 'СЉ'=>'ъ', 
    'С‹'=>'ы', 'СЊ'=>'ь', 
   
...

Удалить слеш в конце URL

Вчера написал код, который проверяет есть ли в конце текущего URL слеш (/) и если есть, удаляет, затем перенаправляет на этот же адрес, но уже без слеша в конце.
Сам код:
# Удаление слеша в конце URL
if (basename(substr($_SERVER['REQUEST_URI'], -1) == '/'))
{
	$request_url = rtrim($_SERVER['REQUEST_URI'], '/');
	header('Location: https://' . $_SERVER['HTTP_HOST'] . $request_url, true, 301);
	exit;	
}

Если надо удалять слеш только у одно файла, скажем у файла blog.php, то замените условие:
if (basename(substr($_SERVER['REQUEST_URI'], -1) == '/'))

на:
if (basename($_SERVER['SCRIPT_FILENAME']) == 'blog.php' and substr($_SERVER['REQUEST_URI'], -1) == '/')

А если требуется обратное - везде слеш удалять, а файл blog.php должен остаться со слешем, то условие будет таким:
if (basename($_SERVER['SCRIPT_FILENAME']) != 'blog.php' and substr($_SERVER['REQUEST_URI'], -1) == '/')

Еще один способ удаления слеша в конце URL, при помощи .htaccess:
...

Система плагинов для своего сайта на PHP

PHP
Здравствуйте.
Недавно на одном форуме помогал реализовать систему плагинов для одного сайта, и теперь хочу тут поделиться решением, которое предложил я. Система проста до безобразия, но прежде чем разбирать исходник, давайте разберемся, что такое плагин и для чего он нужен.
Плагины — это способ расширить возможности функционала своего сайта, без внесения правок в исходный код движка. Установка плагина занимает очень мало времени, порой для установки требуется только залить один файл в папку плагинов.

Теперь переходим к созданию самой системы плагинов. Создаем папку, куда будем заливать все свои плагины, например plugins. Наша задача получить содержимое этой папки, для этого будем использовать функцию scandir(). Затем в цикле foreach() будем проверять соответствует ли файл нашим требованиям, и если да, то подключаем файл при помощи функции include().
Код системы плагинов:
$dir = 'plugins/';          # Создаем переменную с именем каталога, где будут находится все плагины
$files
...

Как проверить переменную в PHP

Работая над скриптом может потребоваться проверить, какую-то переменную, имеет ли она значение или она неопределенна. Это проверка необходима, чтобы избежать ошибок вида: Notice: Undefined variable. А также выполнять, ту или иную задачу в зависимости от состояния переменной.

В данном уроке представлено несколько вариантов, как проверить переменную.
Рассмотрим первый вариант. Проверка будет осуществляться при помощи функции isset(). Данная функция, как раз создана для того, чтобы проверять переменную, существует она или нет. Возвращает false - если переменная не существует, и вернет true - если переменная существует. Значение переменной может быть каким угодно, кроме null.
Пример проверки переменной:
if (isset($variable))
{
    // Если переменная существует, то выполняется, какое-то действие, например:
    echo $variable;
}

Код из примера выведет значение переменной $variable на экран, если переменная существует и она не равняется null. Если переменная неопределенна, то на...

Переход на PHP 7

PHP
Решил написать о переходе на PHP 7, так как сам сейчас занять переводом кода одного движка по PHP 7. И так для начала включаем дебаг или отладчик в админ панели сайта, если такого нет у вас, то можно сделать так, как написано в теме: Поиск ошибок в PHP, теперь на экране монитора, мы можем видеть сообщения ошибках, например, такое:
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - dir/file.php (номер строки)

Это сообщение говорит о том, что модификатор e не существует в PHP 7, следует избавляться от него, но если просто удалить данный модификатор, сценарий может выполнятся неправильно, непросто же так его туда писали. Я покажу на примере кода из PHPFOX 3 (как я переписывал код: PHPFOX 3 переход на PHP 7), делаем так:
Например, у нас сообщение ошибки указывает на такую строчку:
        $sStr = preg_replace('/\[x=(\d+)\].+?\[\/x\]/ise', "''.stripslashes(\$this->_parseUserTagged('$1')).''", $sStr); 

Её следует изменить так:
...