PHP код внутри XHTML файла. Проблема.

alekciy

Новичок
PHP код внутри XHTML файла. Проблема.

Имеется такой вот простой код:

<?php echo('<?xml version="1.0" encoding="UTF-8"?>'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Решение второго задания</title>
</head>
<body>
<div>
<?php
$arr = Array();
$a = array('Иван','Петр','Владимир','Василий');
$a = implode(' ',$a);
print $a; preg_match_all('/[а-я]+/i',$a,$arr);
print_r($arr); echo preg_replace('/([а-я]+)/iu', '<p>$1</p>', $a);
?>
</div>
</body>
</html>

Но желаемого результата я не получаю: http://alekciy.ru/work/task_3bug.php . Выходят какие-то неверные кракозябры.

Как я понимаю проблема вся в том, что интерпретатор воспринимает ?> внутри echo в первой строке как блок окончания PHP кода, хотя это ведь не так! И это при том, что

short_open_tag = Off

Пробовал на нескольких машинах и результат везде один и тот же. Это бага или фича? Пофиксить реально?
 

zerkms

TDD infected
Команда форума
раз:
short_open_tag = Off

два:
<?xml version="1.0" encoding="UTF-8"?>
<?php
...?>
 

Фанат

oncle terrible
Команда форума
ну так они и выходят.
вместе со всем остальным, что ты в своём скрипте выводишь.

выкини из головы дурацкие фантазии, и занимайся своим кривым кодом.
 

alekciy

Новичок
Автор оригинала: zerkms
раз:
short_open_tag = Off

два:
<?xml version="1.0" encoding="UTF-8"?>
<?php
...?>
Хм... тут еще такая тонкость. Дома то short_open_tag = Off, а вот на хосте в On и через ini_set изменить не удается.
 

Фанат

oncle terrible
Команда форума
ДА ЗАБУДЬ ТЫ про short_open_tag!
он здесь вообще не при чём! как и XHTML и всё остальное.
этот код выводит ровно то, что в нём написано.
 

alekciy

Новичок
Автор оригинала: Фанат
ну так они и выходят.
вместе со всем остальным, что ты в своём скрипте выводишь.

выкини из головы дурацкие фантазии, и занимайся своим кривым кодом.
Фанат, ты как всегда вежлив и приветлив ;) .
Просто я параллельно с ответа в теме правлю код. А сначала были кракозябры (в виде клиньев), даже валидатор с W3C на страницу ругался в том духе, что не знает, что это за символы.
 

Фанат

oncle terrible
Команда форума
Просто я параллельно с ответа в теме правлю код
молодец.
вот когда исправишь - тогда и приходи.

-~{}~ 13.12.06 04:05:

никаких проблем у PHP кода внутри XHTML файлов нету.
Если ты ДО СИХ ПОР не догадался.
 

alekciy

Новичок
Фанат
Вообще-то я догадался. Я понят не могу, почему же возникла вообще такая ситуация. Файлы создавал в PHP Expert Editor в UTF-8 кодировке.... в этом что ли дело....

-~{}~ 13.12.06 05:12:

Вот и сейчас не так работает, как нужно. Точно такой же скрипт и кракозябры вылезли.... (((
Возможно настройки хостинга....

-~{}~ 13.12.06 05:13:

http://alekciy.ru/work/task_4b.php
 

Фанат

oncle terrible
Команда форума
кодировку скорее всего, сервер выдаёт в НТТР заголовке не UTF-8
задавай сам в скрипте
 

alekciy

Новичок
Так я тоже так сначала подумал. Задавал. Результат тот же. Я так понимаю, что проблема с чтением/сохранением файлов на самом сервере.
 

phprus

Moderator
Команда форума
alekciy
print $a; preg_match_all('/[а-я]+/i',$a,$arr);
print_r($arr); echo preg_replace('/([а-я]+)/iu', '<p>$1</p>', $a);
Внимательно сравни модификаторы у регулярных выражений. (в 1-м выражении не хватает модификатора u)
 

alekciy

Новичок
Спасибо! Точно так и оказалось. В первом случае проглядел по запарке видно.
 
Сверху