Страницы Google предлагают вам минимизировать HTML, т.е. удалить все ненужные пробелы.
CodeIgniter имеет функцию выхода giziping, или это можно сделать с помощью .htaccess
.
Но все же я также хотел бы удалить ненужные пробелы из окончательного вывода HTML.
Я немного поиграл с этим фрагментом кода, и это похоже на работу. Это действительно приводит к тому, что HTML не содержит лишних пробелов и удаляет другое форматирование табуляции.
class Welcome extends CI_Controller
{
function _output()
{
echo preg_replace('!\s+!', ' ', $output);
}
function index(){
...
}
}
Проблема в том, что могут быть такие теги, как
<pre>
, <textarea>
и т.д., которые могут иметь пробелы в них, и регулярное выражение должно их удалить.
Итак, как удалить лишнее пространство из окончательного HTML, не делая пробелы или форматирование для этих определенных тегов, используя регулярное выражение?
Благодаря @Alan Moore получил ответ, это сработало для меня
echo preg_replace('#(?ix)(?>[^\S ]\s*|\s{2,})(?=(?:(?:[^<]++|<(?!/?(?:textarea|pre)\b))*+)(?:<(?>textarea|pre)\b|\z))#', ' ', $output);
ridgerunner очень хорошо проанализировал это регулярное выражение. Я закончил тем, что использовал его решение. Приветствия, чтобы избавиться.