Fgets()但是在字符串而不是文件上?

时间:2011-02-20 15:36:51

标签: php fgets

我可以做以下事情:

$fopen = fopen($file_name, 'r');
$data = fgets($fopen, 16384);
fclose($fopen);

但是他们可以用任何方式模拟相同的功能但是在字符串上(而不是使用文件名)?

$string = file_get_contents($file_name); /* just for demonstration purposes */
$data = /* do something here...*/

希望这是有道理的。

5 个答案:

答案 0 :(得分:3)

为字符串操作here定义了许多函数。 您可以选择满足您要求的任何一种。

您可能需要substr()

答案 1 :(得分:3)

This manual page记录了一个可用于提供

的自定义流包装器
  

对命名全局的读/写访问权限   变量使用标准文件系统   流函数,如fread()。该   var://协议实现如下,   给定URL“var:// foo”将   读/写数据   $ GLOBALS [ “foo” 的]。

这将允许你这样做:

$fp = fopen('var://string', 'r');
$data = fgets($fp, 16384);

来自'string'的'fread()。

答案 2 :(得分:0)

$parts = explode("\n", $data);

foreach ($parts as $key => $value) {  
    $parts[$key] = substr($parts[$key], 0, 16384);  
}

答案 3 :(得分:-1)

哼哼......不确定你想要什么,但是你有没有看过substr()

答案 4 :(得分:-1)

$string = file_get_contents($file_name); /* just for demonstration purposes */
$data = substr($string, 0, 16384);

或许你想让ton在每次调用函数时都占用一部分字符串?