多数大学生出来选择的工作和专业无关
首页 > 专业知识

如何运用相关函数实现PHP读取文件

时间:2018-04-17 17:01:05 [来源]:郑州PHP培训学校

   如何运用相关函数实现PHP读取文件

  PHP读取文件可以通过使用is_readable函数来实现。我们在这里为大家分享了这一函数的使用方法,并介绍了其他实现方法。
  在PHP处理文件信息中,可以用到多种函数来满足我们的需求。在这里就介绍一种PHP读取文件的函数使用方法。首先是一个文件看能不能读取(权限问题),或者存在不,我们可以用is_readable函数来实现PHP读取文件。
  < ?php
  $file = 'dirlist.php';
  if (is_readable($file)
  == false) {
  die('文件不存在或者无法读取');
  } else {
  echo '存在';
  }
  ?>
  判断文件存在的函数还有file_exists(下面演示),但是这个显然无is_readable全面.,当一个文件存在的话可以用< ?php
  $file = "filelist.php";
  if (file_exists($file) == false) {
  die('文件不存在');
  }
  $data = file_get_contents($file);
  echo htmlentities($data);
  ?>
  但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部:
  $fso = fopen($cacheFile, 'r');
  $data = fread($fso, filesize($cacheFile));fclose($fso);
  还有一种方式,可以读取二进制的文件:
  $data = implode('', file($file));
  详细解读PHP获取远程图片技巧
  PHP获取远程图片的方法比较简单,通过对这篇文章中代码示例的理解,希望可以帮助大家提高对PHP具体函数的用法,获得更多的经验。
  PHP语言的用途广泛,可以帮助我们实现许多功能。比如在处理图片上就有很多方式来实现我们的需求。我们在这里就为大家详细介绍有关PHP获取远程图片的方法技巧。
  PHP获取远程图片代码示例:
  function gethttpimage($url){
  set_time_limit(0);
  if(!empty($url)){
  $imgUrl=date('Y-m',time()).'/'.
  uniqid().strrchr($url,".");
  $imgPath=APP_PATH.'/Public
  /uploads/';
  $filename=$imgPath.$imgUrl;
  if(!is_dir($imgPath)) @mkdir
  ($imgPath,0777);
  $get_file=@file_get_
  contents($url);
  if($get_file){
  $fp=@fopen($filename,"w");
  @fwrite($fp,$get_file);
  @fclose($fp);
  }
  return $imgUrl;
  }else{
  return false;
  }
  }
  以上这段代码就是PHP获取远程图片的相关方法介绍。
  介绍几种PHP获取POST数据技巧
  我们为大家总结了一些PHP获取POST数据的技巧,分别为表单POST方式提交情况和fsockopen提交POST数据等。在文章中将会有详细介绍。
  对于一个经验丰富的PHP老手来说,他可以灵活方便的运用PHP语言实现很多他所能想到的功能。从这一点也能看出,PHP是一个功能强大的语言。下面我们来一起看看PHP获取POST数据的几种方法。
  (一)表单POST方式提交情况下PHP获取POST数据$_POST 与 php://input可以取到值,$HTTP_RAW_POST_DATA 为空$_POST 以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换。
  php://input 可通过输入流以文件读取方式取得未经处理的POST原始数据(二)fsockopen提交POST数据下PHP获取POST数据$sock = fsockopen("localhost", 80,
  $errno, $errstr, 30);
  if (!$sock) die("$errstr ($errno)\n");
  $data = "txt=" . urlencode("中") .
  "&bar=" . urlencode("Value for Bar");
  fwrite($sock, "POST /posttest/response
  .php HTTP/1.0\r\n");
  fwrite($sock, "Host: localhost\r\n");
  fwrite($sock, "Content-type: applicat
  ion/x-www-form-urlencoded\r\n");
  fwrite($sock, "Content-length: " .
  strlen($data) . "\r\n");
  fwrite($sock, "Accept: */*\r\n");
  fwrite($sock, "\r\n");
  fwrite($sock, "$data\r\n");
  fwrite($sock, "\r\n");
  $headers = "";
  while ($str = trim(fgets($sock,
  4096)))
  $headers .= "$str\n";
  echo "\n";
  $body = "";
  while (!feof($sock))
  $body .= fgets($sock, 4096);
  fclose($sock);
  echo $body;
  PHP获取POST数据结论:
  1. 用php://input可以很便捷的取到原始POST数据2. $HTTP_RAW_POST_DATA 仅在POST的Content-Type类型不为PHP识别时才有效如通常通过页面表单提交后的POST数据,不能通过$HTTP_RAW_POST_DATA提取到。因其编码类型属性(enctype属性)为 application/x-www-form-urlencoded、multipart/form-data。
  注:即使在页面内显性地改变enctype属性为PHP不可识别的类型,仍无效。因表单提交编码属性是表单限定,不可识别的类型将被认为按默认编码方式提交(即application/x-www-form-urlencoded)3. $_POST仅当数据按 application/x-www-form-urlencoded 类型提交时才能实现PHP获取POST数据。
 

上一篇:PHP函数fwrite安全用于二进制文件

下一篇:探讨PHP页面跳转几种实现技巧