php 一些常用函数
1、var_export()
var_export — 输出或返回一个变量的字符串表示
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE
,从而返回变量的表示。
$a = var_export($array,true) 将变量打印出来包括类型记录下来 然后输出,常用于记录日志
$data = [ 'yyyyy', 'info'=>[1=>11,2=>22], '333333' ]; dump($data); // echo join(',',$data);---会报错,因为是二维数组,只适用于一维数组 var_export($data);----返回数组 echo '<br/>'; echo var_export($data,true);----返回字符串 输出结果
array(3) { [0] => string(5) "yyyyy" ["info"] => array(2) { [1] => int(11) [2] => int(22) } [1] => string(6) "333333" } -------dump输出
array ( 0 => 'yyyyy', 'info' => array ( 1 => 11, 2 => 22, ), 1 => '333333', )---数组
array ( 0 => 'yyyyy', 'info' => array ( 1 => 11, 2 => 22, ), 1 => '333333', )---字符串
2、parse_str()
parse_str() 函数把查询字符串解析到变量中。
注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量。
注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。
<?php parse_str("name=Bill&age=60"); echo $name."<br>"; echo $age; ?> <?php parse_str("name=Bill&age=60",$myArray); print_r($myArray); ?>
3、file_get_contents('php://input', 'r');
$_REQUEST
包含$_POST
和$_GET
和$_COOKIE
的所有数据,是根据键值对解析好的。而php://input
是原始数据,是未解析的。
如果提交的是表单form
,enctype
是application/x-www-form-urlencoded
或者multipart/form-data
,那么表单中的键值对就会被解析到上述三个超全局变量中。而multipart/form-data
编码提交的文件会被解析到$_FILES
中。
而如果你提交的数据不是上述表单编码,可能无法解析,就可以用php://input
来获取提交的原始数据。
index.html
<form action="action.php" method="post" > <input type="text" name="userName" id="userName" /><br/> <input type="text" name="userPass" id="userPass" /><br/> <input type="submit" value="ok" /> </form>
action.php
<?php $raw_post_data = file_get_contents('php://input', 'r'); echo "-------\$_POST------------------<br/>"; echo var_dump($_POST) . "<br/>"; echo "-------php://input-------------<br/>"; echo $raw_post_data . "<br/>"; ?>
输出:
1).php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml数据
2)file_get_contents("php://input") 获取数据进行解析
parse_str($raw_post_data, $data); var_export($data); echo $data['userName'];-----数组形式