传参

shell执行PHP时,传参的三种方式

亡梦爱人 提交于 2020-04-09 20:06:40
php执行http请求时,可以使用GET或POST请求,但在shell命令行下无法使用。 以下为命令行下的三种传值方式 一、使用 $argv & $ $argc 参数接收 $argc :传递到脚本的参数数目 Manual $argv :传递给脚本的参数数组 Manual 注意: 这两个变量仅在register_argc_argv打开时可用 第一个参数总是当前脚本的文件名 php代码 <?php var_dump($argc); var_dump($argv); shell命令 //sh命令 php index.php a b c //结果 Array( [0] => index.php [1] => a [2] => b [3] => c ) 二、使用getopt函数 getopt() : 从命令行参数列表中获取选项 // 使用格式 array getopt ( string $options [, array $longopts [, int &$optind ]] ) //参数 1.options : 该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 "x" 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。 1.1单独的字符(不接受值) 1.2后面跟随冒号的字符(此选项需要值) 1.3后面跟随两个冒号的字符

URL 传+号到后台变空格问题解决方案

被刻印的时光 ゝ 提交于 2019-11-29 09:19:13
今天在调试客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是URL中默认的将“+”号转义了。 解决方法如下: 方法一、 修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。 方法二、 修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。 例子: String a = reuqest.‍getParameter("clientStr")‍.replace(' ','+'); 如果客户端为clientStr=test+OK,那么a的值为test+OK; 方法三、 修改服务器端,将获取参数的方法由‍reuqest.‍getParameter改为‍request.getQueryString().substring(0),然后对得到的字符串进行解析。 例子: ‍‍String a =request.getQueryString().substring(0); ‍如果客户端为clientStr=test+OK,那么a的值为‍clientStr=test+OK,需要再解析一下, a=a.‍substring(10);得到a的值为‍test+OK。 附: 一个JS,用来转义URL中特殊字符的。 ‍function URLencode(sStr) { return escape(sStr)

js传递url含有中文参数值乱码问题的解决

蹲街弑〆低调 提交于 2019-11-28 12:47:40
项目中在使用jQuery的ajax进行提交的时候,在给它的url属性设置值的传递参数的时候,参数值含有中文,在servlet中获取数据的时候出现中文乱码问题。解决方案和思路: 1.首先对在js文件中,使用encodeURI(URL)对URL进行编码处理,即var url = encodeURI(URL);2. 2.在servlet当中获取参数的时候使用java.net.URLDecoder.decode("获取的参数","编码类型")进行解码。在我的项目中,url传递过来的keys的参数值为中文,整个项目采用的是UTF-8编码:以此为例,操作如下: String keys = java.net.URLDecoder.decode(request.getParameter("keys"),"UTF-8"); 来源: oschina 链接: https://my.oschina.net/u/853862/blog/163789