php调用系统命令的函数的比较
了解命令的区别并进行直观的选择 前言PHP有众多调用系统命令的函数,大致如下:
于是就想着总结一下它们的差异。本想着对照手册把它们的函数功能,参数,返回等都列出来,但是其实不利于直观看出差异来。谷歌上发现大多数人跟我想的一样,更侧重于函数功能的介绍。于是通过stack overflow,终于发现了满意的答案,虽然答案简短但是直观,于是准备翻译一下,原文地址:http://stackoverflow.com/questions/732832/php-exec-vs-system-vs-passthru#answer-39681338 原文翻译先前的回答看起来有点疑惑、不完整(译注:其他回答通篇文字说明),因此以下表总结了区别:
其他易混淆的注意事项:
翻译完。 附加内容:安全性任何脚本都需要在安全的环境下执行,PHP提供了两个函数来保证执行系统命令的安全。 1.escapeshellcmd()-shell 元字符转义说明:对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。反斜线()会在以下字符之前插入: #&;`|*?~<>^()[]{}$,x0A 和 xFF。 ‘ 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 都会被空格代替。 2.escapeshellarg()-把字符串转码为可以在 shell 命令里使用的参数说明:将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |