Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Обрезать строку до и после определенного символа (PHP)

PHP
Была необходимость разобрать строку на куски до и после определенного символа.
Я разбирал URL на части до и после слеша (/), для скрипта редиректа внешних ссылок, что бы вытащить домен сайта. Разбивал строку при помощи функции explode(), данная функция для этого и предназначена, что бы строки разбивать на подстроки.

Вот как я это сделал:
Забил URL в переменную:
$value = 'https://www.google.com/doodles/claude-debussys-151st-birthday'; 

В данном URL (как и в любом другом) есть несколько слешов /, что мне и надо, они та и будут служить мне тем символом, по который строка будет обрезаться.
Дальше разбиваю URL на подстроки, до и после слеша:
$domain = explode('/', $value); 

Строка разбивается на следующие подстроки: https:, www.google.com, doodles, claude-debussys-151st-birthday, у каждой подстроки есть свой порядковый номер, начиная с ноля (массив). Получается так:
echo $domain[0]; # Выводит на экран - https:
echo $domain[1]; # Выводит на экран - (пустая строка,
...

Как восставить текст из каракулей на 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. Если переменная неопределенна, то на...