1,//单位秒 ) ); $cnt=0; while($cnt二、一次有延时的话那就多试几次有时失败是因为网络等因素造成。可">
当前位置:Gxlcms > PHP教程 > PHPfile_get_contents超时的设置方法

PHPfile_get_contents超时的设置方法

时间:2021-07-01 10:21:17 帮助过:22人阅读

  1. $opts = array(

  2. 'http'=>array(
  3. 'method'=>"GET",
  4. 'timeout'=>1,//单位秒
  5. )
  6. );

  7. $cnt=0;

  8. while($cnt<3 && ($bb=file_get_contents("http://bbs.it-home.org", false, stream_context_create($opts)))===FALSE) $cnt++;
  9. echo $cnt;
  10. echo $bb;

二、一次有延时的话那就多试几次 有时失败是因为网络等因素造成。 可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失 败将返回 FALSE。 例如: $cnt=0; while($cnt<3 && ($bb=file_get_contents("http://bbs.it-home.org", false, stream_context_create($opts)))===FALSE) $cnt++; 以上方法对付超时已经OK了。 那么Post呢?'method'=>”GET”, 是不是能设置成post呢? 例如:

  1. function Post($url, $post = null){

  2. $context = array ();
  3. if (is_array ( $post )) {
  4. ksort ( $post );
  5. $context ['http'] = array (
  6. 'timeout' => 60,
  7. 'method' => 'POST',
  8. 'content' => http_build_query( $post, '', '&' )
  9. );

  10. }

  11. return file_get_contents ( $url, false, stream_context_create ( $context ) );
  12. }

  13. $data = array (

  14. 'name' => 'test',
  15. 'email' => 'admin@admin.com',
  16. 'submit' => 'submit',
  17. );
  18. echo Post ( 'http://bbs.it-home.org', $data );

就是这样了,以上的函数还是不错的,同时解决了超时控制与Post传值的问题。

人气教程排行