2017-10-06 7 views
1

Je travaille sur un projet d'école en PHP et mes pages web doivent passer la validation XHTML 1.0.Validation XHTML 1.0 - La ligne de code PHP renvoie des erreurs. Pourquoi? Comment réparer?

La ligne de code suivante génère des erreurs.

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

Erreur ligne 116, colonne 18: sans échappement '<' non autorisée dans les valeurs des attributs

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

✉ 

Erreur ligne 116, colonne 18: attributs construire erreur

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

✉ 

erreur Ligne 116, Colonne 18: Impossible de trouver la fin de Start Tag img ligne 116

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

Toutes les suggestions pour expliquer pourquoi cela se produit et comment y remédier seront très appréciées.

+4

XHTML ne peut pas valider PHP. Au lieu de cela, passez dans la source de la page rendue. – aynber

Répondre

-1

La gestion des erreurs est importante. Espérons que ce code basé sur la plateforme live mature vous aidera.

<?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>'; 
} 
?> 

Assurez-vous également que votre XHTML est XHTML en servant l'en-tête MIME correct:

<?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); 
?> 

Si vous souhaitez un aperçu plus loin pour XHTML5 (HTML5 en utilisant l'analyseur XML) voir mon site en mon profil; C'est une plate-forme Web complète qui utilise cette combinaison gagnante. Bonne chance!

+0

Cela ne répond pas à la question du tout. La question était de valider PHP avec le validateur W3C. –