DANFA

Удалить слеш в конце 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:
    # Deleting slash
    RewriteCond
...

Система плагинов для своего сайта на 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); 

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

Моя первая страница на PHP (С чего начать?)

Здравствуйте.
Мне часто приходят письма с вопросами, с чего начать изучение, как устроен PHP и какую книгу я бы рекомендовал для изучение? Сразу скажу, что я изучал язык PHP (и продолжаю изучать) не по какому то учебнику, у меня не было какой то конкретной книги, по которой бы я занимался. Во всех книгах, что я видел, я прочитал первые две страницы, там где рассказывают, как вывести на экран надпись: Привет, Мир!, ну или, что то в этом духе. Конечно это делается так:
<?php 
echo 'Привет, Мир!';

И это я знал ещё до того, как решил, что я должен понимать код написанный на PHP, но этого знания очень и очень мало. Мне надо понимать почему выводится именно этот фрагмент, а не другой и при каких условиях. Интерес читать книги у меня "улетел" из головы и я больше не искал светлого пути в каких то книгах, так что рекомендовать, какую книгу выбрать и какого автора, я не буду. Могу лишь сказать если будите изучать PHP по книге, выбирайте книгу посвежее, те книги, что написанные более года...