if (zend_get_parameters_ex(3, &fd, &bytes, &p_delim) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string_ex(p_delim);
- /* Make sure that there is at least one character in string */
- if (Z_STRLEN_PP(p_delim) < 1) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Third parameter must be a character");
- return;
- }
- /* use first character from string */
- delimiter = Z_STRVAL_PP(p_delim)[0];
break;
case 4:
if (zend_get_parameters_ex(4, &fd, &bytes, &p_delim, &p_enclosure) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string_ex(p_delim);
- /* Make sure that there is at least one character in string */
- if (Z_STRLEN_PP(p_delim) < 1) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Third parameter must be a character");
- return;
- }
- /* use first character from string */
- delimiter = Z_STRVAL_PP(p_delim)[0];
-
- convert_to_string_ex(p_enclosure);
- /* use first character from string */
- enclosure = Z_STRVAL_PP(p_enclosure)[0];
break;
default:
break;
}
+ if (ZEND_NUM_ARGS() >= 3) {
+ convert_to_string_ex(p_delim);
+ /* Make sure that there is at least one character in string */
+ if (Z_STRLEN_PP(p_delim) < 1) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "delimiter must be a character");
+ RETURN_FALSE;
+ }
+ /* use first character from string */
+ delimiter = Z_STRVAL_PP(p_delim)[0];
+ }
+
+ if (ZEND_NUM_ARGS() >= 4) {
+ convert_to_string_ex(p_enclosure);
+ /* Make sure that there is at least one character in string */
+ if (Z_STRLEN_PP(p_enclosure) < 1) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "enclosure must be a character");
+ RETURN_FALSE;
+ }
+ /* use first character from string */
+ enclosure = Z_STRVAL_PP(p_enclosure)[0];
+ }
+
php_stream_from_zval(stream, fd);
convert_to_long_ex(bytes);