Проверка XHTML 1.0 — Строка кода PHP выдает ошибки. Почему? Как исправить?

Я работаю над школьным проектом на PHP, и мои веб-страницы должны пройти проверку XHTML 1.0.

Следующая строка кода выдает ошибки.

<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo dayOfWeek() ?>" />

Строка ошибки 116, столбец 18: '‹' без экранирования не допускается в значениях атрибутов.

<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d…

✉

Строка ошибки 116, столбец 18: ошибка построения атрибутов

<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d…

✉

Строка ошибки 116, столбец 18: не удалось найти конец строки 116 img начального тега

<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d…

Любые предложения относительно того, почему это происходит и как это исправить, будут высоко оценены.


person Dewey Banks    schedule 06.10.2017    source источник
comment
XHTML не может проверить PHP. Вместо этого передайте источник отображаемой страницы.   -  person aynber    schedule 06.10.2017


Ответы (1)


Обработка ошибок важна. Надеюсь, этот код, основанный на зрелой живой платформе, поможет вам.

<?php
error_reporting(E_ALL);

//No errors if live, outputs errors if local testing.
ini_set('display_errors', substr($_SERVER['HTTP_HOST'],0,4)=='www.' ? 0 : 1);

//Use an include and put the error handling function there.
set_error_handler('error_handle');

function error_handle($errno,$errstr,$errfile,$errline)
{
 //Quick dump.
 //You should store all errors (HTTP, JavaScript, PHP and SQL) in logs.
 echo '<div><p>errno = '.$errno.'</p></div>';
 echo '<div><p>errstr = '.errstr.'</p></div>';
 echo '<div><p>errfile = '.$errfile.'</p></div>';
 echo '<div><p>errline = '.$errline.'</p></div>';
}
?>

Также убедитесь, что ваш XHTML является XHTML, предоставив правильный заголовок mime:

<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
 $mime = 'application/xhtml+xml; charset=UTF-8';
}
else
{
 $mime = 'text/html; charset=UTF-8';//Not UTF-8 string for IE6 but no longer valid 2010+.
}

header('Content-Type: '.$mime);
?>

Если вы хотите получить больше информации о XHTML5 (HTML5 с использованием синтаксического анализатора XML), см. мой веб-сайт в моем профиле; это целая веб-платформа, использующая эту выигрышную комбинацию. Удачи!

person John    schedule 10.10.2017
comment
Это вообще не решает вопрос. Вопрос был о проверке PHP с помощью валидатора W3C. - person Mr Lister; 14.10.2017