Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выводится пробел при использовании инструкции include
 
 автор: Lelik   (27.08.2007 в 00:52)   письмо автору
 
 

Во время инклуда файла, например

<?php
include "file.php";
?>


в исходный код выводится пробел, иными словами инклуд файла равен инструкции

<?php
echo " ";
?>


как исправить решить проблему?

   
 
 автор: ddhvvn   (27.08.2007 в 11:09)   письмо автору
 
   для: Lelik   (27.08.2007 в 00:52)
 

>в исходный код выводится пробел, иными словами инклуд файла равен инструкции
>

><?php
>echo " ";
>
?>
>


Что-то немного не понял .... У Вас же в исходном коде include "file.php";?

   
 
 автор: Lelik   (27.08.2007 в 12:43)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 11:09)
 

да, в исходном файле у меня include "file.php";, но эта инструкция выводит пробел в HTML код.
я строю XML на сервере:

<?php
include "file.php";

$xml "<?xml version=\"1.0\"?><document>content of the document</document>";

echo 
$xml;
?>

то в итоге выводится ошибка, ибо первым символом документа является пробел, а потом уже открывающая скобка тега xml. (отсылаю заголовок header ('Content-Type: text/xml');)

   
 
 автор: ddhvvn   (27.08.2007 в 12:48)   письмо автору
 
   для: Lelik   (27.08.2007 в 12:43)
 

ну так а что в file.php?
Содержимое в студию! ;)

   
 
 автор: Lelik   (27.08.2007 в 13:28)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 12:48)
 

file.php — это условное название. а вообще это config.php его содержание я взял отсюда

   
 
 автор: ddhvvn   (27.08.2007 в 14:07)   письмо автору
 
   для: Lelik   (27.08.2007 в 13:28)
 

ну значит, просто в file.php где-то выводится пробел!
уберите его и будет Вам счастье :))

   
 
 автор: Lelik   (27.08.2007 в 14:53)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 14:07)
 


<?php
  
///////////////////////////////////////////////////
  // 2006 (C) IT-студия SoftTime (http://www.softtime.ru)
  ///////////////////////////////////////////////////
  // Cейчас выставлен сервер локальной машины
  
$dblocation "localhost";
  
// Имя базы данных, на хостинге или локальной машине
  
$dbname "bd";
  
// Имя пользователя базы данных
  
$dbuser "root";
  
// и его пароль
  
$dbpasswd "";

  
// Устанавливаем соединение с базой данных
  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  if (!
$dbcnx) {
   exit( 
"<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
  }
  
// Выбираем базу данных
  
if (! @mysql_select_db($dbname,$dbcnx) ) {
    exit( 
"<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
  }

  
// Определяем версию сервера
  
$query "SELECT VERSION()";
  
$ver mysql_query($query);
  if(!
$ver) exit("Ошибка при определении версии MySQL-сервера");
  
$version mysql_result($ver0);
  list(
$major$minor) = explode("."$version);
  
// Если версия выше 4.1 сообщаем серверу, что будем работать с
  // кодировкой cp1251
  
if($major >= && $minor >= 1)
  {
    
mysql_query ("set character_set_client='cp1251'"); 
    
mysql_query ("set character_set_results='cp1251'"); 
    
mysql_query ("set collation_connection='cp1251_general_ci'");
  }
?> 

кто-нибудь видет где в этом документе выводится пробел? и я не вижу, потому данный вопрос я и задал в тему об сервере апач, ибо я подозреваю, что пробел выводится именно из-за настроек сервера.

   
 
 автор: ddhvvn   (27.08.2007 в 15:06)   письмо автору
 
   для: Lelik   (27.08.2007 в 14:53)
 

Хм...
А подключать файл пробовали по-другому (include("file.php");require("file.php");)?

   
 
 автор: Sobachka   (27.08.2007 в 15:10)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 15:06)
 

на апаче зря думаешь... включи буфферизацию, и проблема отпадёт =)

   
 
 автор: Lelik   (27.08.2007 в 15:17)   письмо автору
 
   для: Sobachka   (27.08.2007 в 15:10)
 

«да, и еще: а < - это первый символ в file.php?»
ага

«на апаче зря думаешь... включи буфферизацию, и проблема отпадёт =)»
это через ob_start?

<?php
  ob_start
();

  
bla-bla-bla;

  
$buffer ob_get_contents();
  
ob_end_clean();
  echo 
$buffer
?>

   
 
 автор: ddhvvn   (27.08.2007 в 15:39)   письмо автору
 
   для: Lelik   (27.08.2007 в 15:17)
 

>это через ob_start?

Да, только можно чуть-чуть по-другому:


<?php 
  ob_start
(); 

  
bla-bla-bla

  
ob_end_flush(); 
?> 


Это тоже работает

   
 
 автор: Lelik   (27.08.2007 в 16:22)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 15:39)
 

мне бы лучше на выходе переменную получать ;)

спасибо. попробую

   
 
 автор: ddhvvn   (27.08.2007 в 15:12)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 15:06)
 

да, и еще: а < - это первый символ в file.php?

   
 
 автор: Trianon   (27.08.2007 в 16:37)   письмо автору
 
   для: Lelik   (27.08.2007 в 14:53)
 

Пробельные символы могут возникнуть, если файл начинается не с байтов <?
или кончается не байтами ?>
Первое частенько бывает, если файл готовился в notepad.exe и первым символом стоит Byte Order Mark.
Второе запросто может быть, если последняя строка файла - полная, то есть оканчивается символами конца строки. Строка должна быть оборванной прямо на >

   
 
 автор: Lelik   (27.08.2007 в 16:52)   письмо автору
 
   для: Trianon   (27.08.2007 в 16:37)
 

«Первое частенько бывает, если файл готовился в notepad.exe и первым символом стоит Byte Order Mark.»
скорей всего именно из-за этого :) а как исправить не подскажешь? поставить метку в разделе «новый документ» UTF-8 без метки BOM?

   
 
 автор: ddhvvn   (27.08.2007 в 17:59)   письмо автору
 
   для: Lelik   (27.08.2007 в 16:52)
 

Раньше все скрипты писал в блокноте и ничего подобного не было!

   
 
 автор: Trianon   (29.08.2007 в 01:52)   письмо автору
 
   для: ddhvvn   (27.08.2007 в 17:59)
 

>Раньше все скрипты писал в блокноте и ничего подобного не было!

Попробуйте в стандартном блокноте создать в кодировке utf-8 php-файл с вызвом какой нибудь session_start() - будете "приятно" удивлены.

   
 
 автор: Trianon   (27.08.2007 в 21:54)   письмо автору
 
   для: Lelik   (27.08.2007 в 16:52)
 

Ну если такой флажок есть - конечно.
Я его никогда не видел.
Общий путь - сменить редактор.

   
 
 автор: Lelik   (27.08.2007 в 21:58)   письмо автору
 
   для: Trianon   (27.08.2007 в 21:54)
 

«Ну если такой флажок есть - конечно.»
есть. эт новый редактор я его с ихнего сайта скачал

«Общий путь - сменить редактор.»
не лучший выход (для меня во всяком случае)

   
 
 автор: Trianon   (27.08.2007 в 22:01)   письмо автору
 
   для: Lelik   (27.08.2007 в 21:58)
 

>«Ну если такой флажок есть - конечно.»
>есть. эт новый редактор я его с ихнего сайта скачал

С какого сайта?
ссылка?

   
 
 автор: Lelik   (28.08.2007 в 19:39)   письмо автору
 
   для: Trianon   (27.08.2007 в 22:01)
 

http://notepad-plus.sourceforge.net/ru/site.htm

   
 
 автор: Trianon   (29.08.2007 в 01:19)   письмо автору
 
   для: Lelik   (28.08.2007 в 19:39)
 

Ничего удивительного. Это же не notepad.exe? или как минимум не тот notepad.exe, что входит в стандартный комплект приложений windows.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования