开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜