草庐IT

pretty-print

全部标签

php - 用 PHP 通过电子邮件发送 print_r

我正在尝试向$msg=print_r($_POST,true);发送电子邮件。当我收到电子邮件时,阵列看起来不太好。它不是5行,而是显示在一行上。我能做什么?编辑:我可以在电子邮件源中看到print_r消息有5行。但不在用户界面(Gmail)上。 最佳答案 您可能以HTML格式获取它,在这种情况下,您需要用适当的HTML标记将其包围:$msg=''.print_r($_POST,true).'';在哪里是预格式化的文本标签。另一种方法是使用nl2br()在$msg上,但它看起来仍然不太正确,因为你想要等宽字体,已经给你了。

php - 通过电子邮件发送 POST 的 print_r 没有任何安全漏洞,对吗?

这可能有点菜鸟问题,抱歉。这种代码没有任何安全漏洞吗?我一直在到处使用它,但想确保我不会留下漏洞。$body=print_r($_POST,true);mail($to,$subject,$body,$headers,"-f$from_address"); 最佳答案 不,这不安全。但您可能会逃脱它,因为您需要其他设置不当的系统来让黑客通过。详情电子邮件的“正常”安全问题是众所周知的:始终审查进入标题的任何内容以防止标题注入(inject);最简单的方法是删除换行符(或拒绝发送任何换行符:表示有人在进行黑客攻击/测试)。这不是您提出的

php - Zend Framework session 命名空间调试 print_r 或等价物

使用Zend和session命名空间,尝试调试我正在运行的问题,我认为应该设置一些东西,但似乎没有,所以我想找到一种查看整个命名空间的方法对象,但是当我在上面尝试print_r()或var_dump()时,我得到的只是Zend_Session_NamespaceObject([_namespace:protected]=>msp)所以我想知道,因为目前我在该主题的其他任何地方都找不到任何东西,是否有查看该对象的方法?有没有我可以通过zend以某种方式启用/禁用它的调试方法? 最佳答案 你可以很容易地调试它print_r($_SESS

php - PHP 中带有 PDO 语句的 print_r 应该返回什么?

$dbh=newPDO("sqlite:/Library/WebServer/Documents/nwind2009.db3");$sql="SELECT*FROMCustomers";print_r($dbh->query($sql));返回:PDOStatement对象([queryString]=>SELECT*FROMCustomers)但如果我这样做:foreach($dbh->query($sql)as$row){echo$row['CompanyName'];}我得到了数据。为什么print_r不显示数据库结果?foreach中发生了什么特别的事情?我认为print_r向

php - 如何回显 print_r() 数组输出

我有一些关于如何回显print_r()输出数组的问题。Array([one@gmail.com]=>Array([0]=>70,80[1]=>90,100)[two@gmail.com]=>Array([0]=>10))functionarray_combines($arr1,$arr2){$out=array();foreach($arr1as$key1=>$value1){$out[$value1][]=$arr2[$key1];}return$out;}print_r(array_combines($a,$b));我期待echo:key:one@gmail.comvalue:70

php - 在 ob_start 中使用 print_r

如手册中所述,它不起作用。我试过var_dump它也遇到同样的问题。ob_start()$debugdata=print_r($var,true)这会将结果打印在屏幕上而不是存储到变量中 最佳答案 print_r的第二个参数是$return,它允许输出作为字符串返回而不是输出:$debugData=print_r($var,true);不需要为此使用输出缓冲,实际上也不能使用。您需要在此之前结束输出缓冲,然后在您的print_r调用之后重新启动缓冲:ob_start();//stuff$output=ob_end_clean();$

PHP - echo 和 print_r 之间是否可以串联

在PHP中,是否可以在echo命令中写出一个array(反之亦然)?谢谢! 最佳答案 当然,print_r()有一个额外的选项允许它返回格式化的文本,而不是直接输出它:echoprint_r($array,true); 关于PHP-echo和print_r之间是否可以串联,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11732331/

php - 使 print_r 使用 PHP_EOL

我的PHP_EOL是“\r\n”,但是,当我在数组上执行print_r时,每个新行都有一个“\n”-而不是“\r\n”-放在后面知道是否可以改变这种行为吗? 最佳答案 如果您查看print_r的源代码,您会发现:PHP_FUNCTION(print_r){zval*var;zend_booldo_return=0;if(zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC,"z|b",&var,&do_return)==FAILURE){RETURN_FALSE;}if(do_return){

php - 为什么 echo 比 print 快?

在PHP中,为什么是echo比print快?他们做同样的事情...为什么一个比另一个快?他们做完全同样的事情吗? 最佳答案 echo和print实际上(不是技术上)是同一件事。两者之间的(几乎唯一的)区别是print将返回整数1,而echo什么都不返回。请记住,这两者实际上都不是函数,而是语言结构。echo允许您在使用它时传递多个字符串,就好像它是一个函数(例如echo($var1,$var2,$var3))。echo也可以使用语法来简写(代替)。至于哪个更快,有许多在线资源试图回答这个问题。PHPBenchmark总结说“[i]在

php - PHP 中是否有等效的 print_r 或 var_dump 默认情况下不回显结果?

我经常使用print_r($value,true)在日志语句中转储一些变量,有时我忘记将第二个参数设置为true,这可能会导致而不是结果在日志语句中,在大多数情况下它会丢失,但有时它甚至会呈现给用户浏览器。这刚好发生在我身上,在对象图中,一些凭据和其他您通常不希望最终用户看到的东西。问题是,由于某种原因,我在1年前传递了null,而不是将true作为第二个参数传递。现在出现了一些系统故障,导致显示错误的输出。您如何避免程序员错误输出堆栈跟踪?为什么所有PHP转储函数默认只回显输出?搜索我们的代码库,我发现很多print_r的调用都没有将第二个参数设置为true。我有时也会使用json_