phpjs
Version:
69 lines (55 loc) • 2.42 kB
Markdown
layout: page
title: "JavaScript fgetcsv function"
comments: true
sharing: true
footer: true
alias:
- /functions/view/fgetcsv:801
- /functions/view/fgetcsv
- /functions/view/801
- /functions/fgetcsv:801
- /functions/801
<!-- Generated by Rakefile:build -->
A JavaScript equivalent of PHP's fgetcsv
{% codeblock filesystem/fgetcsv.js lang:js https://raw.github.com/kvz/phpjs/master/functions/filesystem/fgetcsv.js raw on github %}
function fgetcsv (handle, length, delimiter, enclosure, escape) {
// http://kevin.vanzonneveld.net
// + original by: Brett Zamir (http://brett-zamir.me)
// - depends on: str_getcsv
// * example 1: fopen('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm', 'r');
// * example 1: fgetcsv(handle, 1);
// * returns 1: '<'
var start = 0,
fullline = '';
if (!this.php_js || !this.php_js.resourceData || !this.php_js.resourceDataPointer || length !== undefined && !length) {
return false;
}
start = this.php_js.resourceDataPointer[handle.id];
if (start === undefined || !this.php_js.resourceData[handle.id][start]) {
return false; // Resource was already closed or already reached the end of the file
}
fullline = this.php_js.resourceData[handle.id].slice(start, this.php_js.resourceData[handle.id].indexOf('\n', start) + 1);
if (fullline === '') {
fullline = this.php_js.resourceData[handle.id].slice(start); // Get to rest of the file
}
length = (length === undefined || fullline.length < length) ? fullline.length : Math.floor(length / 2) || 1; // two bytes per character (or surrogate), but ensure at least one
this.php_js.resourceDataPointer[handle.id] += length; // Leaves the pointer one higher apparently than in fgets/fgetss
return this.str_getcsv(this.php_js.resourceData[handle.id].substr(start, length), delimiter, enclosure, escape);
}
{% endcodeblock %}
- [view on github](https://github.com/kvz/phpjs/blob/master/functions/filesystem/fgetcsv.js)
- [edit on github](https://github.com/kvz/phpjs/edit/master/functions/filesystem/fgetcsv.js)
### Example 1
This code
{% codeblock lang:js example %}
fopen('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm', 'r');
fgetcsv(handle, 1);
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
'<'
{% endcodeblock %}
### Other PHP functions in the filesystem extension
{% render_partial _includes/custom/filesystem.html %}