Перейти к публикации
webil

PHP Проблемы с использованием include() include_once() require() require_once()

Рекомендованные сообщения

webil

Итак немного предыстории, не так давно в какой-то степени освоил js и в частности его библиотеку jquery, делал это только с одной целью, чтоб после них было проще освоить синтексис php, и вот я начал изучать php, не по средством, каких-то уроков, а по средством проб и ошибок, ряд таких проб я уже совершил и освоил какие-то вещи, но сегодня столкнулся с странной штукой ответ на которую не смог найти даже в сети(может плохо искал)...

 

Теперь к сути проблемы:

Есть у меня два файла index.php и info.php

в первом фале лежит это:

<?php
error_reporting (E_ALL);
require_once "info.php";
?>
<!DOCTYPE html>
<html>
	<head>
		<?=$head?>
	</head>
	<body>
		<h1><?=$namesite?></h1>
		<hr>
		тут всякая муть
		
	</body>
</html>

а во втором это:

<?php
$namesite = "Name page";
$head = <<<EOT
	<title>{$namesite}</title>
EOT;
?>

Как видно я пытаюсь заюзать: require_once "info.php"; и оно даже работает, но не как надо!
дело в том что в итоге в хроме(тестил только в нем) в итоге получается конструкция следующего вида:

<html><head></head><body>
	<title>Name page</title>
	
	
	<h1>Name page</h1>
	<hr>
	тут всякая муть

</body></html>

т.е. содержимое <head> переходит в <body>

и главное если перенести содержимое второго файла в первый и отказаться от использования require_once (или других его сородичей), все как нужно. 

Кодировка у обоих файлов стоит UTF-8 если на одном из них или на обоих сменить на utf-8 (без bom) доступную в notepad++ то все тоже работает как нужно. 

 

Внимание вопросы:

1. чем отличаются эти кодировки (говорят что utf-8 (без bom) - не корректно выполняет некоторые функции php хотя у меня пока все вроде бы норм)?

2. как заставить работать require_once или других его сородичей с кодировкой utf-8, может я что-то не то делаю?

Изменено пользователем webil

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

Замени все

<?=$var?>

на полноценные

 

<?php echo $var; ?>

Если будет работать, то станет понятно, в чём проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
webil

Замени все на полноценные   Если будет работать, то станет понятно, в чём проблема.

неа, беда осталась

 

попробовал подключить просто пустой файл

<?php
?>

Беда тоже никуда не делась...

Изменено пользователем webil

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Arteom

Попробовал, все нормально отображается.

Пробовал убрать error_reporting (E_ALL);?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
webil

@Arteom , я его наоборот поставил из за этого, думал может какую информацию выдаст, как бы все это не было странно, но в кодировке utf-8 (без bom) все отлично работает, нашел некоторую инфу где говориться мол это из за bom а точнее из за этих 3-х символов в коде, если php код подключается до <html></html> и там имеется require_once (или другие его сородичи) в обычном utf-8 то автоматом в html коде твориться что-то несуразное, как так происходит и почему я инфы не нашел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
webil

в общем перешел на cp1251 там таких косяков не наблюдается...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...