• Портфолио
  • Смотреть портфолио списком
  • Создание сайтов
  • Контактная информация
  • Удаление пробелов между строк HTML при загрузке страницы средствами php

    Сейчас многие обзаводятся сайтами, интернет-магазинами, которые требуют защиты от воровства контента. Часто для этого используют запрет правого клика и невозможность копирования текста на сайте, но иногда и этого оказывается мало, поскольку сейчас довольно много продвинутых пользователей. Достаточно в браузере открыть Исходный код через панель веб-браузера или воспользовавшись сочетанием клавиш CTRL + U. После чего можно найти необходимую строчку и скопировать ее.

    В связи с чем рисуется задача, запретить просмотр исходного кода, конечно нереально, но затруднить его просмотр вполне возможно, если весь html-код преобразовать в одну строку. Чтение такого кода станет сложным. Но и от этого не спасешься, так как в Mozilla, например, можно сделать перенос по словам, где он снова примет практически прежний вид.

    Но, возвращаясь, к нашей задаче, можно сказать, что такое можно реализовать удаление переносов строк и табуляции с помощью регулярных выражений, в частности, с помощью оператора preg_replace.

    Задача решается при помощи следующего кода:

    $currenFile = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'];
    
    $file = file_get_contents($currenFile);
    $data = preg_replace(array('/\r+/', '/\n+/', '/\t+/', '/<\?.*?\?>/'), '', $file);
    
    print $data;
    
    die();
    

    Как это работает?

    переменная $currenFile — определяет полное имя текущего файла, включая имя хоста, откуда запускается данный файл, который потом подставляется в оператор при помощи глобальной переменной $_SERVER, затем подставляется в оператор file_get_contents() путь файла. Далее $data — данные из этого файла с помощью регулярных выражений и оператора preg_replace() очищаются от пробелов и выводятся в браузере, обязательно выполнив в конце die(), чтобы прекратить выполнение скрипта и статичный хтмл не загружался.
    Данный код необходимо поместить в отдельный файл и заинклюдить в файлы, где необходимо очистить хтмл-код. При помощи конструкции:

    <?php include('file.php'); ?>

    Подключение файла обязательно вывести перед !doctype Вашего html-документа.

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