Validating html with php
Something is wrong with my print "<option value...";
line of php code.
It keeps generating error messages: an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified
<option value = Addition>Addition</option>
<and so on...>
Okay, so how do i fix this line of code:
//foreach loop to cycle through the array
foreach ($testFiles as $myFile)
{
$fileBase = substr($myFile, 0, strlen($myFile) - 5);
**//Problem here:**
print "<option value = $fileBase>$fileBase</option>\n";
} // end foreach
s开发者_如何学JAVAuch that's it's html compliant, the php code works fine, I just need validation on the html, cause you can't validate php, and the variable $fileBase references an html file, in this case Addition would be one of the files allotted to $fileBase.
print "<option value = \"$fileBase\">$fileBase</option>\n";
Should do it
print "<option value='$fileBase'>$fileBase</option>\n";
There are a few other options:
You could use printf:
printf('<option value="%s">%s</option>', $fileBase, $fileBase);
A here-doc:
echo <<<HTML
<option value="$fileBase">$fileBase</option>
HTML;
You could drop out of PHP temporarily (generally a good technique, but not very pretty here):
<?
foreach ($testFiles as $myFile) {
$fileBase = substr($myFile, 0, strlen($myFile) - 5);
?>
<option value="<?= htmlentities($fileBase) ?>"><?= htmlentities($fileBase) ?></option>
<?
}
?>
But really, what you should be doing is using one of the many templating systems out there, and not mixing HTML in with your code.
精彩评论