2016-11-20 7 views
-2

enter image description hereЕсть ли -webkit для Chrome или способ избавиться от пробелов, вызванных PHP require_once()?

Хорошо, так что у меня есть эта небольшая проблема с PHP создает пробелы в верхней части моего веб-сайта, когда я использую include(), include_once(), require() или require_once(). Я выяснил, как настроить расположение соответствующих элементов с помощью CSS -webkit и -moz ключевых слов , но Я не могу понять, как настроить позиционирование в Chrome.

Я включил скриншот трех разных браузеров (Edge, Firefox и Chrome).

Вот CSS для синего div в левой части моего веб-сайта.

#nav_menu { 
position: fixed; 
height: 100%; 
width: 300px; 
background-color: #3C7AF3; 
opacity: .6; 
padding: 50px 0px 0px 0px; 
z-index: 2; 
-moz-transform: translateY(-2px); 

-moz-transform: translateY(-2px); работал в Firefox ...

• Я попытался исправить пробел путем "преобразования в UTF-8 без BOM" в Notepad ++ (она не работает).

• Мне нужно, чтобы здесь был вид -chrome-transform: translateY(-2px);, но это не настоящий код.

• ВНИМАНИЕ: -webkit-transform: translateY(-20px); не работает для Chrome

} 

Если я могу избавиться от пробелов, вызванных require_once РНР(), то все будет хорошо ...

Это на в первой строке веб-сайта (account.php):

<?php require_once('../includes/initialize.php'); ?> 

Это initialize.php:

<?php 
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR); 

defined('SITE_ROOT') ? null : 
    define('SITE_ROOT' , 'C:'.DS.'wamp64'.DS.'www'.DS.'my_company'); 

defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes'); 

// 1. load config file first 
require_once(LIB_PATH.DS."config.php"); 

// 2. load basic functions next so that everything after can use them 
require_once(LIB_PATH.DS."functions.php"); 

// 3. load core objects 
// require_once(LIB_PATH.DS."obj".DS."session.php"); 
require_once(LIB_PATH.DS."database.php"); 
require_once(LIB_PATH.DS."obj".DS."database_object.php"); 

// 4. load database-related classes 
require_once(LIB_PATH.DS."obj".DS."user.php"); 
require_once(LIB_PATH.DS."obj".DS."item.php"); 
?> 

Каждый из этих php require_once() вызывает чистый PHP.

Вот кикер: я могу прокомментировать (или даже удалить) весь файл initialize.php и не исправить пробелы.

Вот код, который require_once() предполагается оставить в <head>, а скорее вызывает <head> тег в конце:

enter image description here

+2

Это не могло вызвать пробел, если включенный файл не испортил ваш макет, или если PHP выплевывает ошибку или предупреждение. Пожалуйста, дайте нам дополнительную информацию. – Ultimater

+3

Исправьте ваши скрипты PHP. Любые просачивающиеся пробелы только потом вызовут больше проблем. Любые PHP-скрипты, которые являются чисто PHP, не должны иметь закрывающий PHP-тег '?>'. – Brad

+0

Там, я добавил еще код. Единственный способ, которым я знаю, как удалить пробел, - удалить 'require_once ('../ includes/initialize.php');' – ihodonald

ответ

1

Ненужные символы в начале файла часто знак Юникода байт порядка. Эти символы сообщают синтаксическому анализатору, какую endianess использовать при разборе файла. Они не имеют отношения к UTF-8, но по-прежнему можно настроить вашу среду IDE для их вставки. Вероятно, они есть в ваших включенных файлах.

Если бы это были обычные пробелы, обычным преступником являются теги закрытия PHP ?>, которые появляются рано или там, где они не должны быть. Например, если у вас есть файл класса, который вы включаете, и у вас есть ?> с пустой строкой в ​​конце, вы случайно включили пустую строку в вывод всего, что включает этот класс. Рекомендуется никогда не закрывать ваши теги PHP в файлах, которые являются чисто PHP. Также дважды проверьте, чтобы не было ничего до открытия PHP-тега <?php.

+0

- Sublime Text записывает на консоль (внизу), какую кодировку вы сохраняете при каждом 'Save'. Все, что мне нужно было сделать, это перейти в NotePad ++ и преобразовать в UTF-8. Я удалил все теги окончания в мои чистые .php-файлы, и я больше не получаю спецификацию, но все мои метатеги застряли под моими заголовками ... Я понятия не имею, как это произошло. Какие-либо предложения? – ihodonald

+1

@DonaldWayneMooreII Опубликуйте новый вопрос и включите фактический HTML-код, отправленный по кабелю, в зависимости от того, что браузер показывает вам в браузере DOM. – Brad

+0

- Все спецификации удалены. Мне пришлось вернуться и преобразовать все базовые файлы в UTF-8. Большое вам спасибо за вашу помощь, сэр. -Donald – ihodonald

-2

Update: Пробелы действительно создан BOM. Откройте файл в NotePad ++, перейдите по ссылке: Encoding ->Convert to UTF-8 и Save файл. Убедитесь, что вы не выбрали UTF-8 with BOM.

Если это не сработает, попробуйте установить top на 0px (он работал для позиционирования fixed. В противном случае Chrome является единственным (что я бы назвал сторонним) браузером, который не поддерживает -webkit.

#nav_menu { 
    position: fixed; 
    top: 0px; 
    height: 100%; 
    width: 300px; 
    background-color: #3C7AF3; 
    opacity: .6; 
    padding: 50px 0px 0px 0px; 
    z-index: 2; 
} 

Если это не работает, есть способ, чтобы исправить это с JavaScript:

if (navigator.appVersion.indexOf("Chrome/") != -1) { 
var nm = document.getElementById('your_id'); 
nm.style.top = '-px'; 
} 
+2

Я с @Brad на этом, я уверен, ваша проблема связана не со стилями, а с закрывающим тегом '?>'. Любые символы после этого считаются текстом, и те закрывающие теги могут быть в любом из включенных файлов (config, functions, database ...) – diynevala

+0

Я вернулся и проверил. Дело не в этом. Я просто разместил скриншот кода, который 'require_once()' выходит в начало ''. Это не первый раз, когда это случалось ... Ссылка: http://stackoverflow.com/questions/14815400/php-adds-extra-whitespace-on-require Я попытался преобразовать в ANSI и все. Ничего из этого не получилось. – ihodonald

+1

@DonaldWayneMooreII Вы преобразовали в ANSI? Теперь у вас есть настоящая проблема. :-(Неудивительно, что в этом скриншоте все испортилось. Вы преобразовали свою спецификацию UTF-8 в ANSI. Вам, возможно, очень удастся вытащить ваш шестигранный редактор, чтобы исправить это. Можете ли вы вернуться к предыдущей версии в своем версия управления? – Brad

 Смежные вопросы

  • Нет связанных вопросов^_^