微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在PHP中访问字符串作为文件句柄?

我在服务器上,我只限于PHP 5.2.6,这意味着我无法使用str_getcsv.我正在使用,而不是fgetcsv,它需要“一个有效的文件指针,指向由fopen(),popen()或fsockopen()成功打开的文件.”操作.

我的问题是:有没有办法将字符串作为文件句柄访问?

我的另一个选择是将字符串写入文本文件,然后通过fopen()访问它然后使用fgetcsv,但我希望有一种方法可以直接执行此操作,例如在perl中.

解决方法:

如果你看一下str_getcsv手册页上的用户注释,你会发现this note from daniel,它提出了这个功能(引用):

<?PHP
if (!function_exists('str_getcsv')) {
    function str_getcsv($input, $delimiter = ",", $enclosure = '"', $escape = "\\") {
        $fiveMBs = 5 * 1024 * 1024;
        $fp = fopen("PHP://temp/maxmemory:$fiveMBs", 'r+');
        fputs($fp, $input);
        rewind($fp);

        $data = fgetcsv($fp, 1000, $delimiter, $enclosure); //  $escape only got added in 5.3.0

        fclose($fp);
        return $data;
    }
}
?>

它似乎完全符合你的要求:它使用一个指向内存中临时文件句柄的流,在其上使用fgetcsv.

有关(其中包括)PHP:// temp stream wrapper的文档,请参阅PHP input/output streams.

当然,你应该测试它对你有用 – 但是,至少,这应该让你知道如何实现这个;-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐