使用fseek()php从文件中获取数据

时间:2014-03-04 08:21:08

标签: php file fseek

我有一个来自文件的数据,如下所示:

  

1234567890abcde1234567890

我想从这些数据中获取一些特定数据。所以我得到了值:“abcde”,数据位于11-15。在这里,我在php中使用fseek(),输出显示为:

  

资源ID#3

以下是输出如上所示的代码:

<?php

$fp = fopen('data/tes.txt', 'r');

// read some data
$data = fgets($fp, 25);

// move back to the beginning of the file
// same as rewind($fp);
fseek($fp, 11);
echo $fp;

?>

然而,我想把数据放在11-15位。请帮帮我。

1 个答案:

答案 0 :(得分:0)

你很容易错误地回应资源而不是数据。

更改

fseek($fp, 11);
echo $fp;

echo fseek($fp, 11);
记得fseek成功后,返回0;否则,返回-1。如果要搜索数据,更好的解决方案是使用preg_match

<?php
  $data = file_get_contents("data/tes.txt");
  $matches = array();
  preg_match("/[a-z]+/", $data, $matches);
  print_r($matches);
?>

尝试上面的代码。如果要从特定位置剪切字符串,也可以使用substr()函数。

  <?php
    $data = file_get_contents("data/tes.txt");
    echo substr($data, 11, 4);
  ?>