Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您是否必须在PHP中格式化print_r()的打印输出,才能使用W3C进行验证?_Php_Arrays_Validation_Printing - Fatal编程技术网

您是否必须在PHP中格式化print_r()的打印输出,才能使用W3C进行验证?

您是否必须在PHP中格式化print_r()的打印输出,才能使用W3C进行验证?,php,arrays,validation,printing,Php,Arrays,Validation,Printing,由于print_r的输出,这将无法验证,它不应该“在站点上”使用,还是必须以某种方式格式化 <?php $stuff1 = $_POST["stuff1"];//catch variables $stuff2 = $_POST["stuff2"]; $stuff3 = $_POST["stuff3"]; $myStuff[0] = $stuff1;//put into array $myStuff[1] = $stuff2; $myStuff[2

由于print_r的输出,这将无法验证,它不应该“在站点上”使用,还是必须以某种方式格式化

  <?php
   $stuff1 = $_POST["stuff1"];//catch variables
   $stuff2 = $_POST["stuff2"]; 
   $stuff3 = $_POST["stuff3"]; 
   $myStuff[0] = $stuff1;//put into array
   $myStuff[1] = $stuff2;
   $myStuff[2] = $stuff3;

   print_r($myStuff);

  ?>

print\u r()
主要是作为开发人员的有用工具设计的,而不是以最终用户会看到的方式用于实际生产。因此,您不应该真正尝试验证它-如果您正处于尝试获取要验证的内容的阶段,那么无论如何也不应该使用
print\r

一个普通的
print\r
输出文本,因此没有理由不影响验证。要在HTML页面上以良好的格式打印出来,请使用

$printout = print_r($my_var);
echo "<pre>$printout</pre>";
echo '<pre>', htmlspecialchars(print_r($myStuff, true)), "</pre>\n";
$printout=print\r($my\u var);
回显“$printout”;

如果您不想显示它,而只想作为开发人员查看它,请将它放在HTML(
)中。

验证程序无法区分print\r()的输出与周围的HTML结构;它只解析整个字符流。如果print_r()的输出包含在html中具有特殊含义的字符(在本例中显然是<和>),则验证程序必须假定它属于html结构,而不是文本数据。对于html解析器,您必须将它们标记为“不,这只是文本数据,不是控制字符”。一种方法是发送而不是“真实”字符本身,例如,你的意思是PHP生成的HTML不会验证吗?验证器说问题出在哪里?它说:错误行19,第99列:这里不允许字符数据…>

打印输出与打印。\r:ArrayOk它只是开发过程中的一个工具?纯文本可能不会出现在每个HTML元素中,因此会影响验证。从问题下面的评论来看,这就是老年退休金计划的问题。最后!在有人提到htmlspecialchars之前,花了5个答案。