file_get_contents实现数据Post数据方法

file_get_contents() 函数把整个文件读入一个字符串中,和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串.

file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法,如果操作系统支持,还会使用内存映射技术来增强性能.

语法:file_get_contents(path,include_path,context,start,max_length)

参数 描述

path 必需。规定要读取的文件.

include_path 可选,如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1".

context 可选,规定文件句柄的环境.

context 是一套可以修改流的行为的选项,若使用 null,则忽略.

start 可选,规定在文件中开始读取的位置,该参数是 php教程 5.1 新加的.

max_length 可选,规定读取的字节数,该参数是 php 5.1 新加的.

php实例代码如下:

  1. <?php
  2. function post($url, $post = null)
  3. {
  4. $context = array();
  5. if (is_array($post))
  6. {
  7. ksort($post);
  8. $context['http'] = array
  9. (
  10. 'method' => 'post',
  11. 'content' => http_build_query($post, '', '&'),
  12. );
  13. }
  14. return file_get_contents($url, false, stream_context_create($context));
  15. }
  16. $data = array
  17. (
  18. 'name' => 'test',
  19. 'email' => 'test@gmail.com',
  20. 'submit' => 'submit',
  21. );
  22. echo post('http://localhost/5-5/request_post_result.php', $data);
  23. ?>

接收数据,request_post_result.php 接收经过post的数据,php代码如下:

  1. <?php
  2. echo $_post['name'];
  3. echo $_post['email'];
  4. echo $_post['submit'];
  5. echo "fdfd";
  6. ?>

实例二,代码如下:

  1. /**
  2. * 其它版本
  3. * 使用方法:
  4. * $post_string = "app=request&version=beta";
  5. * request_by_other('http://facebook.cn/restserver.php',$post_string);
  6. */
  7. function request_by_other($remote_server,$post_string){
  8. $context = array(
  9. 'http'=>array(
  10. 'method'=>'post',
  11. 'header'=>'content-type: application/x-www-form-urlencoded'."rn".
  12. 'user-agent : jimmy's post example beta'."rn".
  13. 'content-length: '.strlen($post_string)+8,
  14. 'content'=>'mypost='.$post_string)
  15. );
  16. $stream_context = stream_context_create($context);
  17. $data = file_get_contents($remote_server,false,$stream_context);
  18. return $data;
  19. }