Как найти BOM?
Очень часто при работе с WordPress много неприятностей доставляет наличие BOM в сохраненных в utf-8 файлах.
Ошибка проявляется в виде сообщения:
Warning: Cannot modify header information — headers already sent by (output started at /xxxxxxxx/wp-config.php:1)
Может быть не wp-config.php, а другой файл. А может сообщения вообще не быть, если вывод предупреждений подавлен. Когда ошибка на виду, найти файл не составит проблемы. А если нет сообщения?
Для облегчения поиска файлов с BOM я нашкрябал простенький скриптик.
Использование:
1. скрипт разархивировать и залить на сервер в корневую директорию
2. в адресной строке броузера набрать http://ваш.сайт/find_bom.php
Для увеличения скорости работы проверяются только те директории, в которые обычно пользователи кладут свои файлы, т.е. корень, /wp-content/themes и /wp-content/plugins.
Если WordPress находится не в корне сайта, то скрипт нужно положить в директорию, где лежит WordPress, и из нее же и запускать.
Скачать find_bom.zip
См. также Как сохранять файлы в кодировке utf-8.
Добрый человек, известный под ником CMEPTHuk, написал утилитку utf8-bom-remover для поиска и удаления BOM локально, еще до аплоада файлов на сервер. За что ему большое человеческое спасибо!
UPD По просьбам админов сайтов на других движках, я сделал модификацию скрипта, которая ищет BOM во всех php-файлах всех поддиректорий. Скачать find_bom_total.zip.
Удачной охоты!
Валидатор W3C обучен находить BOM наравне с ошибками в html-коде.
Реально помог скрипт. После внесения правок на сайт остановились все автоматические связки с 1С.
Пол дня искали причину, пока с помощью данного скрипта не нашли BOM.
Искренне благодарен
локальная утилита — utf8-bom-remover.zip скорее всего не пашет.
а вот серверная find_bom_total.zip- просто божественна !
А у меня что-то не работает файлик с поиском bom… Сайт давний, древний, хотим восстановить доступ к нему проблема такая же, как https://ru.wordpress.org/support/topic/%D0%B2%D1%85%D0%BE%D0%B4-%D0%B2-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%BA%D1%83-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B-%D1%81-%D0%BA%D1%83%D0%BA%D0%B8/ Куда ни положи файл, всё равно выдаёт ошибку 404. Эх…
Из архива вынуть не забыли?
Не забыли, конечно. В чём может быть проблема? Как запустить. Вдруг проблема в BOM «где-то»…
Как и написано в «инструкции»:
1. скрипт разархивировать и залить на сервер в корневую директорию
2. в адресной строке броузера набрать http://ваш.сайт/find_bom.php
Если точно залили скрипт find_bom.php в корневую директорию сайта (не путать с home directory пользователя!), то не может быть никаких 404. Разве что хостинг очень специфический.
Видимо «специфический» хостинг. Потому что даже если переложить файл в какую-то дочернюю папку (/wp-content/themes к примеру), то всё равно не запускается по прямой ссылке. Даже дали права 777 файлу и всё равно сайт выдаёт 404: http://craft-award.ru/wp-content/themes/find_bom.php
Да, я уже видел. Но BOMа нет, есть пробелы. Их найти сложнее.
craft-award.ru — Ваш? На нем и /readme.html не открывается c 404. Что-то накручено в настройках и/или в .htaccess.
Впрочем, BOMа там нет, но есть 15 пробелов в начале.
Да, наш. В том-то и дело, что тех специалиста, который сайт делал, не найти, а у нас знания ограниченные по теме. Так что даже не представляем, с какого бока подступиться к вопросу. Ищем все возможные решения проблемы доступа в админку.