/_octopress/source/functions/fgetcsv/index.markdown
Markdown | 68 lines | 55 code | 13 blank | 0 comment | 0 complexity | d3004f6ed49fdf99dd44a0d6b75f648d MD5 | raw file
- ---
- 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 %}