From 4c9cdcad8643f350cbedff7ff9cf5b8e62bb6ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sat, 12 Sep 2020 22:36:53 +0200 Subject: [PATCH 1/8] Make a few small corrections to ext/openssl parameter names --- ext/openssl/openssl.stub.php | 14 +++++++------- ext/openssl/openssl_arginfo.h | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php index 8454c4fd162b..acce5126bf27 100644 --- a/ext/openssl/openssl.stub.php +++ b/ext/openssl/openssl.stub.php @@ -57,7 +57,7 @@ function openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, &$outp function openssl_csr_sign(OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, $private_key, int $days, ?array $options = null, int $serial = 0): OpenSSLCertificate|false {} /** @param OpenSSLAsymmetricKey $private_key */ -function openssl_csr_new(array $distinguished_names, &$private_key, ?array $options = null, ?array $extra_options = null): OpenSSLCertificateSigningRequest|false {} +function openssl_csr_new(array $distinguished_names, &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|false {} function openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false {} @@ -105,7 +105,7 @@ function openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false {} function openssl_pbkdf2(string $passphrase, string $salt, int $key_length, int $iterations, string $digest_algorithm = "sha1"): string|false {} -function openssl_pkcs7_verify(string $filename, int $flags, ?string $output_filename = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $pk7_filename = null): bool|int {} +function openssl_pkcs7_verify(string $filename, int $flags, ?string $output_filename = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $pkcs7_filename = null): bool|int {} /** @param OpenSSLCertificate|array|string $certificate */ function openssl_pkcs7_encrypt(string $filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $cipher_algorithm = OPENSSL_CIPHER_RC2_40): bool {} @@ -177,15 +177,15 @@ function openssl_verify(string $data, string $signature, $public_key, string|int /** * @param string $sealed_data * @param array $encrypted_keys - * @param string $initialization_vector + * @param string $iv */ -function openssl_seal(string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algorithm, &$initialization_vector = null): int|false {} +function openssl_seal(string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algorithm, &$iv = null): int|false {} /** * @param string $output * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key */ -function openssl_open(string $data, &$output, string $encrypted_key, $private_key, string $cipher_algorithm, ?string $initialization_vector = null): bool {} +function openssl_open(string $data, &$output, string $encrypted_key, $private_key, string $cipher_algorithm, ?string $iv = null): bool {} function openssl_get_md_methods(bool $aliases = false): array {} @@ -198,9 +198,9 @@ function openssl_get_curve_names(): array|false {} function openssl_digest(string $data, string $digest_algorithm, bool $raw_output = false): string|false {} /** @param string $tag */ -function openssl_encrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $initialization_vector = "", &$tag = null, string $additional_authentication_data = "", int $tag_length = 16): string|false {} +function openssl_encrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $iv = "", &$tag = null, string $additional_authentication_data = "", int $tag_length = 16): string|false {} -function openssl_decrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $initialization_vector = "", string $tag = "", string $additional_authentication_data = ""): string|false {} +function openssl_decrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $iv = "", string $tag = "", string $additional_authentication_data = ""): string|false {} function openssl_cipher_iv_length(string $cipher_algorithm): int|false {} diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h index 91a6ab4277b4..6db06be266ae 100644 --- a/ext/openssl/openssl_arginfo.h +++ b/ext/openssl/openssl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 94b744d0176f126d491a9c385136708da124e332 */ + * Stub hash: 41d21e985a29902d5628aa4b7dd8a3e2b3744712 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0) ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL) @@ -96,7 +96,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_csr_new, 0, 2, OpenS ZEND_ARG_TYPE_INFO(0, distinguished_names, IS_ARRAY, 0) ZEND_ARG_INFO(1, private_key) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extra_options, IS_ARRAY, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extra_attributes, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_csr_get_subject, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE) @@ -165,7 +165,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkcs7_verify, 0, 2, MAY_ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ca_info, IS_ARRAY, 0, "[]") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, content, IS_STRING, 1, "null") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pk7_filename, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pkcs7_filename, IS_STRING, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_encrypt, 0, 4, _IS_BOOL, 0) @@ -283,7 +283,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_seal, 0, 5, MAY_BE_LONG| ZEND_ARG_INFO(1, encrypted_keys) ZEND_ARG_TYPE_INFO(0, public_key, IS_ARRAY, 0) ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, initialization_vector, "null") + ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, iv, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_open, 0, 5, _IS_BOOL, 0) @@ -292,7 +292,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_open, 0, 5, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, encrypted_key, IS_STRING, 0) ZEND_ARG_INFO(0, private_key) ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_get_md_methods, 0, 0, IS_ARRAY, 0) @@ -317,7 +317,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_encrypt, 0, 3, MAY_BE_ST ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 0, "\"\"") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"") ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, tag, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_authentication_data, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag_length, IS_LONG, 0, "16") @@ -328,7 +328,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_decrypt, 0, 3, MAY_BE_ST ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 0, "\"\"") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_authentication_data, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() From 510242520d9f99f404ab5d156c0e68ce26a5f5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Thu, 10 Sep 2020 13:28:18 +0200 Subject: [PATCH 2/8] Promote a few remaining errors in ext/standard --- Zend/tests/bug41026.phpt | 2 +- ext/mbstring/mbstring.c | 7 +- ext/mbstring/mbstring.stub.php | 2 +- ext/mbstring/mbstring_arginfo.h | 9 +- ext/mbstring/tests/bug49354.phpt | 10 +- ext/mbstring/tests/mb_strcut.phpt | 9 +- ext/sodium/libsodium.c | 2 +- ext/standard/array.c | 18 +- ext/standard/basic_functions.c | 64 +-- ext/standard/basic_functions.stub.php | 2 +- ext/standard/basic_functions_arginfo.h | 14 +- ext/standard/browscap.c | 2 +- ext/standard/dir.c | 4 +- ext/standard/dl.c | 4 +- ext/standard/file.c | 24 +- ext/standard/ftok.c | 4 +- ext/standard/html.c | 2 +- ext/standard/mail.c | 20 +- ext/standard/math.c | 10 +- ext/standard/net.c | 3 +- ext/standard/password.c | 2 +- ext/standard/php_mail.h | 6 +- ext/standard/streamsfuncs.c | 4 +- ext/standard/string.c | 10 +- ext/standard/tests/array/bug69198.phpt | 2 +- ext/standard/tests/array/compact.phpt | 2 +- ext/standard/tests/array/compact_basic.phpt | 2 +- .../tests/array/compact_variation2.phpt | 4 +- .../tests/file/fgetcsv_variation12.phpt | 288 ++++++------ .../tests/file/fgetcsv_variation19.phpt | 150 +++--- .../tests/file/fgetcsv_variation24.phpt | 192 ++++---- .../tests/file/fnmatch_maxpathlen.phpt | 22 +- .../tests/file/fputcsv_variation13.phpt | 216 ++++----- .../tests/file/fputcsv_variation14.phpt | 108 ++--- .../tests/file/fputcsv_variation9.phpt | 432 +++++++++--------- .../tests/file/glob_error_002-win32.phpt | 12 +- .../tests/file/popen_pclose_error-win32.phpt | 30 ++ .../tests/file/popen_pclose_error.phpt | 20 +- ext/standard/tests/general_functions/010.phpt | 11 +- .../tests/general_functions/bug32647.phpt | 80 +++- .../tests/general_functions/bug41037.phpt | 16 +- .../general_functions/dl-cve-2007-4887.phpt | 11 +- .../tests/general_functions/ini_get_all.phpt | 6 +- ext/standard/tests/mail/mail_basic7.phpt | 85 ++-- .../tests/misc/time_sleep_until_error1.phpt | 13 +- .../password_removed_salt_option.phpt | 4 +- ext/standard/tests/serialize/bug14293.phpt | 2 +- ext/standard/tests/serialize/bug35895.phpt | 2 +- ext/standard/tests/serialize/bug71995.phpt | 2 +- ext/standard/tests/serialize/bug79526.phpt | 6 +- ext/standard/tests/serialize/max_depth.phpt | 4 +- .../serialize/sleep_mangled_name_clash.phpt | 2 +- .../sleep_undefined_declared_properties.phpt | 6 +- .../serialize/unserialize_error_001.phpt | 33 +- .../stream_get_contents_negative_length.phpt | 2 +- ext/standard/tests/strings/bug40754.phpt | 29 +- ext/standard/tests/strings/bug44703.phpt | 12 +- ext/standard/tests/strings/bug67252.phpt | 2 +- .../tests/strings/substr_count_basic.phpt | 4 +- .../tests/strings/substr_count_error.phpt | 24 +- ext/standard/tests/strings/uuencode.phpt | 2 +- ext/standard/uuencode.c | 2 +- ext/standard/var.c | 17 +- ext/sysvshm/tests/001.phpt | 25 +- tests/classes/bug26737.phpt | 2 +- 65 files changed, 1105 insertions(+), 1013 deletions(-) create mode 100644 ext/standard/tests/file/popen_pclose_error-win32.phpt diff --git a/Zend/tests/bug41026.phpt b/Zend/tests/bug41026.phpt index 055e5f574dc0..0dde757d84ce 100644 --- a/Zend/tests/bug41026.phpt +++ b/Zend/tests/bug41026.phpt @@ -23,4 +23,4 @@ echo "Done\n"; --EXPECT-- Done -Warning: (Registered shutdown functions) Unable to call self::on_shutdown() - function does not exist in Unknown on line 0 +Fatal error: Registered shutdown function self::on_shutdown() cannot be called, function does not exist in Unknown on line 0 diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 58797eb24450..e1fb2472e445 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2233,8 +2233,8 @@ PHP_FUNCTION(mb_strcut) } if (from > string.len) { - // TODO Out of bounds ValueError - RETURN_FALSE; + zend_argument_value_error(3, "must be contained in argument #1 ($str)"); + RETURN_THROWS(); } ret = mbfl_strcut(&string, &result, from, len); @@ -3500,6 +3500,9 @@ PHP_FUNCTION(mb_send_mail) str_headers = php_trim(str_headers, NULL, 0, 2); } else if (headers_ht) { str_headers = php_mail_build_headers(headers_ht); + if (!str_headers) { + RETURN_THROWS(); + } } zend_hash_init(&ht_headers, 0, NULL, ZVAL_PTR_DTOR, 0); diff --git a/ext/mbstring/mbstring.stub.php b/ext/mbstring/mbstring.stub.php index 3be9aad66c85..74f86404cf4e 100644 --- a/ext/mbstring/mbstring.stub.php +++ b/ext/mbstring/mbstring.stub.php @@ -45,7 +45,7 @@ function mb_substr_count(string $haystack, string $needle, ?string $encoding = n function mb_substr(string $str, int $start, ?int $length = null, ?string $encoding = null): string {} -function mb_strcut(string $str, int $start, ?int $length = null, ?string $encoding = null): string|false {} +function mb_strcut(string $str, int $start, ?int $length = null, ?string $encoding = null): string {} function mb_strwidth(string $str, ?string $encoding = null): int {} diff --git a/ext/mbstring/mbstring_arginfo.h b/ext/mbstring/mbstring_arginfo.h index 8bea3306f2ea..27b692c26f61 100644 --- a/ext/mbstring/mbstring_arginfo.h +++ b/ext/mbstring/mbstring_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 442b9dc473714c91663fcd530214935ba74302e4 */ + * Stub hash: e02a0588d1f46fa96452558e35ea904907b8bdf2 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, language, IS_STRING, 1, "null") @@ -87,12 +87,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mb_substr, 0, 2, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_strcut, 0, 2, MAY_BE_STRING|MAY_BE_FALSE) - ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0) - ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 1, "null") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null") -ZEND_END_ARG_INFO() +#define arginfo_mb_strcut arginfo_mb_substr #define arginfo_mb_strwidth arginfo_mb_strlen diff --git a/ext/mbstring/tests/bug49354.phpt b/ext/mbstring/tests/bug49354.phpt index c25b405d8203..d14ca62e3700 100644 --- a/ext/mbstring/tests/bug49354.phpt +++ b/ext/mbstring/tests/bug49354.phpt @@ -10,7 +10,13 @@ var_dump(mb_strcut($crap, 1, 100, 'UTF-8')); var_dump(mb_strcut($crap, 2, 100, 'UTF-8')); var_dump(mb_strcut($crap, 3, 100, 'UTF-8')); var_dump(mb_strcut($crap, 12, 100, 'UTF-8')); -var_dump(mb_strcut($crap, 13, 100, 'UTF-8')); + +try { + mb_strcut($crap, 13, 100, 'UTF-8'); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} + ?> --EXPECT-- string(12) "AåBäCöDü" @@ -18,4 +24,4 @@ string(11) "åBäCöDü" string(11) "åBäCöDü" string(9) "BäCöDü" string(0) "" -bool(false) +mb_strcut(): Argument #3 ($length) must be contained in argument #1 ($str) diff --git a/ext/mbstring/tests/mb_strcut.phpt b/ext/mbstring/tests/mb_strcut.phpt index 40cc3ddb0dce..90a650800d6b 100644 --- a/ext/mbstring/tests/mb_strcut.phpt +++ b/ext/mbstring/tests/mb_strcut.phpt @@ -28,8 +28,11 @@ print MBStringChars(mb_strcut($euc_jp, 6, 5,'EUC-JP'), 'EUC-JP') . "\n"; print MBStringChars(mb_strcut($euc_jp, 5, 5,'EUC-JP'), 'EUC-JP') . "\n"; print MBStringChars(mb_strcut($euc_jp, 0, 100,'EUC-JP'), 'EUC-JP') . "\n"; -$str = mb_strcut($euc_jp, 100, 10,'EUC-JP'); -($str === false) ? print "OK\n" : print "No good\n"; +try { + mb_strcut($euc_jp, 100, 10,'EUC-JP'); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} $str = mb_strcut($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "OK\n" : print "No good\n"; @@ -60,7 +63,7 @@ print MBStringChars(mb_strcut($utf16le, 1, 4, 'UTF-16LE'), 'UTF-16LE') . "\n"; [a4ce cab8] [a4b3 a4ce] [30 31 32 33 a4b3 a4ce cab8 bbfa cef3 a4cf c6fc cbdc b8ec a4c7 a4b9 a1a3 45 55 43 2d 4a 50 a4f2 bbc8 a4c3 a4c6 a4a4 a4de a4b9 a1a3 c6fc cbdc b8ec a4cf cccc c5dd bdad a4a4 a1a3] -OK +mb_strcut(): Argument #3 ($length) must be contained in argument #1 ($str) OK == UTF-8 == [] diff --git a/ext/sodium/libsodium.c b/ext/sodium/libsodium.c index 18f7d3db1ddd..bbe88ba206c1 100644 --- a/ext/sodium/libsodium.c +++ b/ext/sodium/libsodium.c @@ -3067,7 +3067,7 @@ PHP_FUNCTION(sodium_unpad) RETURN_THROWS(); } if (padded_len < blocksize) { - zend_argument_error(sodium_exception_ce, 1, "must not be shorter than the block size"); + zend_argument_error(sodium_exception_ce, 1, "must be at least as long as the block size"); RETURN_THROWS(); } diff --git a/ext/standard/array.c b/ext/standard/array.c index 58c4d815b7c8..bd2823a4076c 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -962,22 +962,6 @@ static int php_array_user_compare(Bucket *a, Bucket *b) /* {{{ */ } /* }}} */ -/* check if comparison function is valid */ -#define PHP_ARRAY_CMP_FUNC_CHECK(func_name) \ - if (!zend_is_callable(*func_name, 0, NULL)) { \ - php_error_docref(NULL, E_WARNING, "Invalid comparison function"); \ - BG(user_compare_fci) = old_user_compare_fci; \ - BG(user_compare_fci_cache) = old_user_compare_fci_cache; \ - RETURN_FALSE; \ - } \ - - /* Clear FCI cache otherwise : for example the same or other array with - * (partly) the same key values has been sorted with uasort() or - * other sorting function the comparison is cached, however the name - * of the function for comparison is not respected. see bug #28739 AND #33295 - * - * Following defines will assist in backup / restore values. */ - #define PHP_ARRAY_CMP_FUNC_VARS \ zend_fcall_info old_user_compare_fci; \ zend_fcall_info_cache old_user_compare_fci_cache \ @@ -2567,7 +2551,7 @@ static void php_compact_var(HashTable *eg_active_symbol_table, zval *return_valu zend_hash_update(Z_ARRVAL_P(return_value), Z_STR_P(entry), &data); } } else { - php_error_docref(NULL, E_NOTICE, "Undefined variable $%s", ZSTR_VAL(Z_STR_P(entry))); + php_error_docref(NULL, E_WARNING, "Undefined variable $%s", ZSTR_VAL(Z_STR_P(entry))); } } else if (Z_TYPE_P(entry) == IS_ARRAY) { if (Z_REFCOUNTED_P(entry)) { diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 922bcab330ba..5df5dd772aa8 100755 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1310,8 +1310,8 @@ PHP_FUNCTION(time_sleep_until) target_ns = (uint64_t) (target_secs * ns_per_sec); current_ns = ((uint64_t) tm.tv_sec) * ns_per_sec + ((uint64_t) tm.tv_usec) * 1000; if (target_ns < current_ns) { - php_error_docref(NULL, E_WARNING, "Sleep until to time is less than current time"); - RETURN_FALSE; + zend_argument_value_error(1, "must be a timestamp greater than or equal to the current time"); + RETURN_THROWS(); } diff_ns = target_ns - current_ns; @@ -1468,9 +1468,8 @@ PHPAPI int _php_error_log_ex(int opt_err, const char *message, size_t message_le break; case 2: /*send to an address */ - php_error_docref(NULL, E_WARNING, "TCP/IP option not available!"); + zend_value_error("TCP/IP option is not available for error logging"); return FAILURE; - break; case 3: /*save to a file */ stream = php_stream_open_wrapper(opt, "a", IGNORE_URL_WIN | REPORT_ERRORS, NULL); @@ -1684,10 +1683,9 @@ static int user_shutdown_function_call(zval *zv) /* {{{ */ zval retval; if (!zend_is_callable(&shutdown_function_entry->arguments[0], 0, NULL)) { - zend_string *function_name - = zend_get_callable_name(&shutdown_function_entry->arguments[0]); - php_error(E_WARNING, "(Registered shutdown functions) Unable to call %s() - function does not exist", ZSTR_VAL(function_name)); - zend_string_release_ex(function_name, 0); + zend_string *function_name = zend_get_callable_name(&shutdown_function_entry->arguments[0]); + zend_throw_error(NULL, "Registered shutdown function %s() cannot be called, function does not exist", ZSTR_VAL(function_name)); + zend_string_release(function_name); return 0; } @@ -1719,21 +1717,10 @@ static void user_tick_function_call(user_tick_function_entry *tick_fe) /* {{{ */ tick_fe->arguments + 1 ) == SUCCESS) { zval_ptr_dtor(&retval); - } else { - zval *obj, *method; - - if (Z_TYPE_P(function) == IS_STRING) { - php_error_docref(NULL, E_WARNING, "Unable to call %s() - function does not exist", Z_STRVAL_P(function)); - } else if ( Z_TYPE_P(function) == IS_ARRAY - && (obj = zend_hash_index_find(Z_ARRVAL_P(function), 0)) != NULL - && (method = zend_hash_index_find(Z_ARRVAL_P(function), 1)) != NULL - && Z_TYPE_P(obj) == IS_OBJECT - && Z_TYPE_P(method) == IS_STRING) { - php_error_docref(NULL, E_WARNING, "Unable to call %s::%s() - function does not exist", ZSTR_VAL(Z_OBJCE_P(obj)->name), Z_STRVAL_P(method)); - } else { - php_error_docref(NULL, E_WARNING, "Unable to call tick function"); - } + zend_string *function_name = zend_get_callable_name(function); + zend_throw_error(NULL, "Registered tick function %s() cannot be called, function does not exist", ZSTR_VAL(function_name)); + zend_string_release(function_name); } tick_fe->calling = 0; @@ -1764,7 +1751,7 @@ static int user_tick_function_compare(user_tick_function_entry * tick_fe1, user_ } if (ret && tick_fe1->calling) { - php_error_docref(NULL, E_WARNING, "Unable to delete tick function executed at the moment"); + zend_throw_error(NULL, "Registered tick function cannot be unregistered while it is being executed"); return 0; } return ret; @@ -1818,23 +1805,22 @@ PHP_FUNCTION(register_shutdown_function) /* Prevent entering of anything but valid callback (syntax check only!) */ if (!zend_is_callable(&shutdown_function_entry.arguments[0], 0, NULL)) { - zend_string *callback_name - = zend_get_callable_name(&shutdown_function_entry.arguments[0]); - php_error_docref(NULL, E_WARNING, "Invalid shutdown callback '%s' passed", ZSTR_VAL(callback_name)); + zend_string *callback_name = zend_get_callable_name(&shutdown_function_entry.arguments[0]); + zend_argument_type_error(1, "must be a valid callback, function \"%s\" not found or invalid function name", ZSTR_VAL(callback_name)); efree(shutdown_function_entry.arguments); - zend_string_release_ex(callback_name, 0); - RETVAL_FALSE; - } else { - if (!BG(user_shutdown_function_names)) { - ALLOC_HASHTABLE(BG(user_shutdown_function_names)); - zend_hash_init(BG(user_shutdown_function_names), 0, NULL, user_shutdown_function_dtor, 0); - } + zend_string_release(callback_name); + RETURN_THROWS(); + } - for (i = 0; i < shutdown_function_entry.arg_count; i++) { - Z_TRY_ADDREF(shutdown_function_entry.arguments[i]); - } - zend_hash_next_index_insert_mem(BG(user_shutdown_function_names), &shutdown_function_entry, sizeof(php_shutdown_function_entry)); + if (!BG(user_shutdown_function_names)) { + ALLOC_HASHTABLE(BG(user_shutdown_function_names)); + zend_hash_init(BG(user_shutdown_function_names), 0, NULL, user_shutdown_function_dtor, 0); + } + + for (i = 0; i < shutdown_function_entry.arg_count; i++) { + Z_TRY_ADDREF(shutdown_function_entry.arguments[i]); } + zend_hash_next_index_insert_mem(BG(user_shutdown_function_names), &shutdown_function_entry, sizeof(php_shutdown_function_entry)); } /* }}} */ @@ -2057,7 +2043,7 @@ PHP_FUNCTION(ini_get_all) if (extname) { if ((module = zend_hash_str_find_ptr(&module_registry, extname, extname_len)) == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to find extension '%s'", extname); + php_error_docref(NULL, E_WARNING, "Extension \"%s\" cannot be found", extname); RETURN_FALSE; } module_number = module->module_number; @@ -2542,7 +2528,7 @@ PHP_FUNCTION(move_uploaded_file) if (successful) { zend_hash_str_del(SG(rfc1867_uploaded_files), path, path_len); } else { - php_error_docref(NULL, E_WARNING, "Unable to move '%s' to '%s'", path, new_path); + php_error_docref(NULL, E_WARNING, "Unable to move \"%s\" to \"%s\"", path, new_path); } RETURN_BOOL(successful); diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index a251770d97ad..0b771fbd4918 100755 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -672,7 +672,7 @@ function localeconv(): array {} function strnatcasecmp(string $s1, string $s2): int {} -function substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int|false {} +function substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int {} function str_pad(string $input, int $pad_length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string {} diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index 8c684028adbf..e27c934c0371 100644 --- a/ext/standard/basic_functions_arginfo.h +++ b/ext/standard/basic_functions_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 26683100d272e35a6318e0eaece65dc3761b7b03 */ + * Stub hash: 0224dc521c4a8bd49fbcfd26cddb01a2e571cf74 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_set_time_limit, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 0) @@ -743,7 +743,7 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_setrawcookie, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\'\'") - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, expires_or_options, "0") + ZEND_ARG_TYPE_MASK(0, expires_or_options, MAY_BE_ARRAY|MAY_BE_LONG, "0") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, path, IS_STRING, 0, "\'\'") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, domain, IS_STRING, 0, "\'\'") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, secure, _IS_BOOL, 0, "false") @@ -932,9 +932,9 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_substr_replace, 0, 3, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_FALSE) ZEND_ARG_TYPE_MASK(0, str, MAY_BE_ARRAY|MAY_BE_STRING, NULL) - ZEND_ARG_TYPE_MASK(0, replace, MAY_BE_STRING|MAY_BE_ARRAY, NULL) - ZEND_ARG_INFO(0, start) - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, length, "null") + ZEND_ARG_TYPE_MASK(0, replace, MAY_BE_ARRAY|MAY_BE_STRING, NULL) + ZEND_ARG_TYPE_MASK(0, start, MAY_BE_ARRAY|MAY_BE_LONG, NULL) + ZEND_ARG_TYPE_MASK(0, length, MAY_BE_ARRAY|MAY_BE_LONG|MAY_BE_NULL, "null") ZEND_END_ARG_INFO() #define arginfo_quotemeta arginfo_base64_encode @@ -1042,7 +1042,7 @@ ZEND_END_ARG_INFO() #define arginfo_strnatcasecmp arginfo_strnatcmp -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_substr_count, 0, 2, MAY_BE_LONG|MAY_BE_FALSE) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_substr_count, 0, 2, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, haystack, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, needle, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, offset, IS_LONG, 0, "0") @@ -1770,7 +1770,7 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_needs_rehash, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0) - ZEND_ARG_TYPE_MASK(0, algo, MAY_BE_STRING|MAY_BE_LONG, NULL) + ZEND_ARG_TYPE_MASK(0, algo, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_NULL, NULL) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]") ZEND_END_ARG_INFO() diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index e9ee1b1f0e17..f4e38c5860f0 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -413,7 +413,7 @@ static int browscap_read_file(char *filename, browser_data *browdata, int persis zend_stream_init_fp(&fh, VCWD_FOPEN(filename, "r"), filename); if (!fh.handle.fp) { - zend_error(E_CORE_WARNING, "Cannot open '%s' for reading", filename); + zend_error(E_CORE_WARNING, "Cannot open \"%s\" for reading", filename); return FAILURE; } diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 98bff12fc2bc..ca85b537798f 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -415,8 +415,8 @@ PHP_FUNCTION(glob) ZEND_PARSE_PARAMETERS_END(); if (pattern_len >= MAXPATHLEN) { - php_error_docref(NULL, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); - RETURN_FALSE; + zend_argument_value_error(1, "must have a length less than %d bytes", MAXPATHLEN); + RETURN_THROWS(); } if ((GLOB_AVAILABLE_FLAGS & flags) != flags) { diff --git a/ext/standard/dl.c b/ext/standard/dl.c index 233103f83d00..8d6bbb52e8b0 100644 --- a/ext/standard/dl.c +++ b/ext/standard/dl.c @@ -54,8 +54,8 @@ PHPAPI PHP_FUNCTION(dl) } if (filename_len >= MAXPATHLEN) { - php_error_docref(NULL, E_WARNING, "File name exceeds the maximum allowed length of %d characters", MAXPATHLEN); - RETURN_FALSE; + zend_argument_value_error(1, "must be shorter than %d bytes", MAXPATHLEN); + RETURN_THROWS(); } php_dl(filename, MODULE_TEMPORARY, return_value, 0); diff --git a/ext/standard/file.c b/ext/standard/file.c index 6f29343d9f34..414e3a249510 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -945,9 +945,9 @@ PHP_FUNCTION(popen) /* Musl only partially validates the mode. Manually check it to ensure consistent behavior. */ if (mode_len != 1 || (*posix_mode != 'r' && *posix_mode != 'w')) { - php_error_docref2(NULL, command, posix_mode, E_WARNING, "Invalid mode"); + zend_argument_value_error(2, "must be either \"r\" or \"w\""); efree(posix_mode); - RETURN_FALSE; + RETURN_THROWS(); } #endif @@ -1816,7 +1816,7 @@ PHP_FUNCTION(fputcsv) zend_argument_value_error(3, "must be a single character"); RETURN_THROWS(); } else if (delimiter_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "delimiter must be a single character"); + php_error_docref(NULL, E_WARNING, "Argument #3 ($delimiter) must be a single character"); } /* use first character from string */ @@ -1828,7 +1828,7 @@ PHP_FUNCTION(fputcsv) zend_argument_value_error(4, "must be a single character"); RETURN_THROWS(); } else if (enclosure_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "enclosure must be a single character"); + php_error_docref(NULL, E_WARNING, "Argument #4 ($enclosure) must be a single character"); } /* use first character from string */ enclosure = *enclosure_str; @@ -1836,7 +1836,7 @@ PHP_FUNCTION(fputcsv) if (escape_str != NULL) { if (escape_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "escape must be empty or a single character"); + php_error_docref(NULL, E_WARNING, "Argument #5 ($escape) must be empty or a single character"); } if (escape_str_len < 1) { escape_char = PHP_CSV_NO_ESCAPE; @@ -1954,7 +1954,7 @@ PHP_FUNCTION(fgetcsv) zend_argument_value_error(3, "must be a single character"); RETURN_THROWS(); } else if (delimiter_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "delimiter must be a single character"); + php_error_docref(NULL, E_WARNING, "Argument #3 ($delimiter) must be a single character"); } /* use first character from string */ @@ -1966,7 +1966,7 @@ PHP_FUNCTION(fgetcsv) zend_argument_value_error(4, "must be a single character"); RETURN_THROWS(); } else if (enclosure_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "enclosure must be a single character"); + php_error_docref(NULL, E_WARNING, "Argument #4 ($enclosure) must be a single character"); } /* use first character from string */ @@ -1975,7 +1975,7 @@ PHP_FUNCTION(fgetcsv) if (escape_str != NULL) { if (escape_str_len > 1) { - php_error_docref(NULL, E_NOTICE, "escape must be empty or a single character"); + php_error_docref(NULL, E_WARNING, "Argument #5 ($enclosure) must be empty or a single character"); } if (escape_str_len < 1) { @@ -2423,12 +2423,12 @@ PHP_FUNCTION(fnmatch) ZEND_PARSE_PARAMETERS_END(); if (filename_len >= MAXPATHLEN) { - php_error_docref(NULL, E_WARNING, "Filename exceeds the maximum allowed length of %d characters", MAXPATHLEN); - RETURN_FALSE; + zend_argument_value_error(1, "must have a length less than %d bytes", MAXPATHLEN); + RETURN_THROWS(); } if (pattern_len >= MAXPATHLEN) { - php_error_docref(NULL, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); - RETURN_FALSE; + zend_argument_value_error(2, "must have a length less than %d bytes", MAXPATHLEN); + RETURN_THROWS(); } RETURN_BOOL( ! fnmatch( pattern, filename, (int)flags )); diff --git a/ext/standard/ftok.c b/ext/standard/ftok.c index 04830fb6df62..77fddb6304b2 100644 --- a/ext/standard/ftok.c +++ b/ext/standard/ftok.c @@ -45,8 +45,8 @@ PHP_FUNCTION(ftok) } if (proj_len != 1){ - php_error_docref(NULL, E_WARNING, "Project identifier is invalid"); - RETURN_LONG(-1); + zend_argument_value_error(2, "must be 1 byte long"); + RETURN_THROWS(); } if (php_check_open_basedir(pathname)) { diff --git a/ext/standard/html.c b/ext/standard/html.c index dfed88987538..8e3d2bf64af7 100644 --- a/ext/standard/html.c +++ b/ext/standard/html.c @@ -382,7 +382,7 @@ static enum entity_charset determine_charset(const char *charset_hint, zend_bool } if (!quiet) { - php_error_docref(NULL, E_WARNING, "Charset `%s' not supported, assuming utf-8", + php_error_docref(NULL, E_WARNING, "Charset \"%s\" is not supported, assuming utf-8", charset_hint); } } diff --git a/ext/standard/mail.c b/ext/standard/mail.c index af7d5f114bcb..487282b642e0 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -105,11 +105,11 @@ static void php_mail_build_headers_elem(smart_str *s, zend_string *key, zval *va switch(Z_TYPE_P(val)) { case IS_STRING: if (php_mail_build_headers_check_field_name(key) != SUCCESS) { - php_error_docref(NULL, E_WARNING, "Header field name (%s) contains invalid chars", ZSTR_VAL(key)); + zend_value_error("Header name \"%s\" contains invalid characters", ZSTR_VAL(key)); return; } if (php_mail_build_headers_check_field_value(val) != SUCCESS) { - php_error_docref(NULL, E_WARNING, "Header field value (%s => %s) contains invalid chars or format", ZSTR_VAL(key), Z_STRVAL_P(val)); + zend_value_error("Header \"%s\" has invalid format, or contains invalid characters", ZSTR_VAL(key)); return; } smart_str_append(s, key); @@ -121,7 +121,7 @@ static void php_mail_build_headers_elem(smart_str *s, zend_string *key, zval *va php_mail_build_headers_elems(s, key, val); break; default: - php_error_docref(NULL, E_WARNING, "Headers array elements must be string or array (%s)", ZSTR_VAL(key)); + zend_type_error("Header \"%s\" must be of type array|string, %s given", ZSTR_VAL(key), zend_zval_type_name(val)); } } @@ -154,7 +154,7 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) ZEND_HASH_FOREACH_KEY_VAL(headers, idx, key, val) { if (!key) { - php_error_docref(NULL, E_WARNING, "Found numeric header (" ZEND_LONG_FMT ")", idx); + zend_type_error("Header name cannot be numeric, " ZEND_LONG_FMT " given", idx); continue; } /* https://tools.ietf.org/html/rfc2822#section-3.6 */ @@ -189,7 +189,7 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) break; case sizeof("to")-1: /* "to", "cc" */ if (!strncasecmp("to", ZSTR_VAL(key), ZSTR_LEN(key))) { - php_error_docref(NULL, E_WARNING, "Extra header cannot contain 'To' header"); + php_error_docref(NULL, E_WARNING, "The additional headers cannot contain the \"To\" header"); continue; } if (!strncasecmp("cc", ZSTR_VAL(key), ZSTR_LEN(key))) { @@ -223,7 +223,7 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) break; case sizeof("subject")-1: if (!strncasecmp("subject", ZSTR_VAL(key), ZSTR_LEN(key))) { - php_error_docref(NULL, E_WARNING, "Extra header cannot contain 'Subject' header"); + php_error_docref(NULL, E_WARNING, "The additional headers cannot contain the \"Subject\" header"); continue; } PHP_MAIL_BUILD_HEADER_DEFAULT(s, key, val); @@ -231,6 +231,11 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) default: PHP_MAIL_BUILD_HEADER_DEFAULT(s, key, val); } + + if (EG(exception)) { + smart_str_free(&s); + return NULL; + } } ZEND_HASH_FOREACH_END(); /* Remove the last \r\n */ @@ -271,6 +276,9 @@ PHP_FUNCTION(mail) headers_str = php_trim(headers_str, NULL, 0, 2); } else if (headers_ht) { headers_str = php_mail_build_headers(headers_ht); + if (!headers_str) { + RETURN_THROWS(); + } } if (to_len > 0) { diff --git a/ext/standard/math.c b/ext/standard/math.c index 4f723be365df..d11eef919e95 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -704,7 +704,7 @@ PHPAPI zend_long _php_math_basetolong(zval *arg, int base) { - php_error_docref(NULL, E_WARNING, "Number '%s' is too big to fit in long", s); + php_error_docref(NULL, E_WARNING, "Number %s is too big to fit in long", s); return ZEND_LONG_MAX; } } @@ -877,8 +877,8 @@ PHPAPI zend_string * _php_math_zvaltobase(zval *arg, int base) /* Don't try to convert +/- infinity */ if (fvalue == ZEND_INFINITY || fvalue == -ZEND_INFINITY) { - php_error_docref(NULL, E_WARNING, "Number too large"); - return ZSTR_EMPTY_ALLOC(); + zend_value_error("Number is too large"); + return NULL; } end = ptr = buf + sizeof(buf) - 1; @@ -999,6 +999,10 @@ PHP_FUNCTION(base_convert) _php_math_basetozval(number, (int)frombase, &temp); result = _php_math_zvaltobase(&temp, (int)tobase); + if (!result) { + RETURN_THROWS(); + } + RETVAL_STR(result); } /* }}} */ diff --git a/ext/standard/net.c b/ext/standard/net.c index 9f22c7584020..424dad44f426 100644 --- a/ext/standard/net.c +++ b/ext/standard/net.c @@ -301,8 +301,7 @@ PHP_FUNCTION(net_get_interfaces) { freeifaddrs(addrs); #else /* Should never happen as we never register the function */ - php_error(E_WARNING, "No support for net_get_interfaces"); - RETURN_FALSE; + ZEND_UNREACHABLE("No support for net_get_interfaces"); #endif } /* }}} */ diff --git a/ext/standard/password.c b/ext/standard/password.c index 687a780d1d55..b894793ea9e1 100644 --- a/ext/standard/password.c +++ b/ext/standard/password.c @@ -109,7 +109,7 @@ static zend_string* php_password_make_salt(size_t length) /* {{{ */ static zend_string* php_password_get_salt(zval *unused_, size_t required_salt_len, HashTable *options) { if (options && zend_hash_str_exists(options, "salt", sizeof("salt") - 1)) { - php_error_docref(NULL, E_WARNING, "The 'salt' option is no longer supported. The provided salt has been been ignored"); + php_error_docref(NULL, E_WARNING, "The \"salt\" option is ignored, since providing a custom salt is no longer supported"); } return php_password_make_salt(required_salt_len); diff --git a/ext/standard/php_mail.h b/ext/standard/php_mail.h index 2a561d55233f..2a5bb8c0c6bd 100644 --- a/ext/standard/php_mail.h +++ b/ext/standard/php_mail.h @@ -28,12 +28,12 @@ do { \ php_mail_build_headers_elem(&s, key, val); \ } else if (Z_TYPE_P(val) == IS_ARRAY) { \ if (!strncasecmp(target, ZSTR_VAL(key), ZSTR_LEN(key))) { \ - php_error_docref(NULL, E_WARNING, "'%s' header must be at most one header. Array is passed for '%s'", target, target); \ + zend_type_error("Header \"%s\" must be of type string, array given", target); \ continue; \ } \ php_mail_build_headers_elems(&s, key, val); \ } else { \ - php_error_docref(NULL, E_WARNING, "Extra header element '%s' cannot be other than string or array.", ZSTR_VAL(key)); \ + zend_type_error("Header \"%s\" must be of type array|string, %s given", ZSTR_VAL(key), zend_zval_type_name(val)); \ } \ } while(0) @@ -45,7 +45,7 @@ do { \ } else if (Z_TYPE_P(val) == IS_ARRAY) { \ php_mail_build_headers_elems(&s, key, val); \ } else { \ - php_error_docref(NULL, E_WARNING, "Extra header element '%s' cannot be other than string or array.", ZSTR_VAL(key)); \ + zend_type_error("Header \"%s\" must be of type array|string, %s given", ZSTR_VAL(key), zend_zval_type_name(val)); \ } \ } while(0) diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 50e0a38d9bc6..1310c88744e2 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -432,7 +432,7 @@ PHP_FUNCTION(stream_get_contents) if (maxlen_is_null) { maxlen = (ssize_t) PHP_STREAM_COPY_ALL; } else if (maxlen < 0 && maxlen != PHP_STREAM_COPY_ALL) { - php_error_docref(NULL, E_WARNING, "Length must be greater than or equal to 0, or -1"); + php_error_docref(NULL, E_WARNING, "Argument #2 ($maxlength) must be greater than or equal to 0, or -1"); RETURN_FALSE; } @@ -459,7 +459,7 @@ PHP_FUNCTION(stream_get_contents) } if (maxlen > INT_MAX) { - php_error_docref(NULL, E_WARNING, "maxlen truncated from " ZEND_LONG_FMT " to %d bytes", maxlen, INT_MAX); + php_error_docref(NULL, E_WARNING, "Argument #2 ($maxlength) is truncated from " ZEND_LONG_FMT " to %d bytes", maxlen, INT_MAX); maxlen = INT_MAX; } if ((contents = php_stream_copy_to_mem(stream, maxlen, 0))) { diff --git a/ext/standard/string.c b/ext/standard/string.c index b3d357baa88b..7e6f05ad71c7 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -5421,7 +5421,7 @@ PHP_FUNCTION(substr_count) ZEND_PARSE_PARAMETERS_END(); if (needle_len == 0) { - zend_argument_value_error(2, "must be a non-empty string"); + zend_argument_value_error(2, "cannot be empty"); RETURN_THROWS(); } @@ -5443,8 +5443,8 @@ PHP_FUNCTION(substr_count) length += (haystack_len - offset); } if (length < 0 || ((size_t)length > (haystack_len - offset))) { - php_error_docref(NULL, E_WARNING, "Invalid length value"); - RETURN_FALSE; + zend_argument_value_error(4, "must be contained in argument #1 ($haystack)"); + RETURN_THROWS(); } endp = p + length; } @@ -5908,8 +5908,8 @@ PHP_FUNCTION(substr_compare) } if ((size_t)offset > ZSTR_LEN(s1)) { - php_error_docref(NULL, E_WARNING, "The start position cannot exceed initial string length"); - RETURN_FALSE; + zend_argument_value_error(3, "must be contained in argument #1 ($main_str)"); + RETURN_THROWS(); } cmp_len = len ? (size_t)len : MAX(ZSTR_LEN(s2), (ZSTR_LEN(s1) - offset)); diff --git a/ext/standard/tests/array/bug69198.phpt b/ext/standard/tests/array/bug69198.phpt index 1231c44c936d..ab43df7e5cb6 100644 --- a/ext/standard/tests/array/bug69198.phpt +++ b/ext/standard/tests/array/bug69198.phpt @@ -9,7 +9,7 @@ $result = compact('willNeverBeDefined'); var_dump($result, empty($result), $result === array(), empty($willNeverBeDefined)); ?> --EXPECTF-- -Notice: compact(): Undefined variable $willNeverBeDefined in %s on line %d +Warning: compact(): Undefined variable $willNeverBeDefined in %s on line %d array(0) { } bool(true) diff --git a/ext/standard/tests/array/compact.phpt b/ext/standard/tests/array/compact.phpt index 8c3ee9a16019..978120e822ce 100644 --- a/ext/standard/tests/array/compact.phpt +++ b/ext/standard/tests/array/compact.phpt @@ -13,7 +13,7 @@ $result = compact("event", $location_vars); var_dump($result); ?> --EXPECTF-- -Notice: compact(): Undefined variable $c\u0327ity in %s on line %d +Warning: compact(): Undefined variable $c\u0327ity in %s on line %d array(2) { ["event"]=> string(8) "SIGGRAPH" diff --git a/ext/standard/tests/array/compact_basic.phpt b/ext/standard/tests/array/compact_basic.phpt index 5187cb77ebd6..da8844d38b27 100644 --- a/ext/standard/tests/array/compact_basic.phpt +++ b/ext/standard/tests/array/compact_basic.phpt @@ -75,7 +75,7 @@ array(0) { array(0) { } -Notice: compact(): Undefined variable $g in %s on line %d +Warning: compact(): Undefined variable $g in %s on line %d array(0) { } Done diff --git a/ext/standard/tests/array/compact_variation2.phpt b/ext/standard/tests/array/compact_variation2.phpt index a540dd662cfc..2e3661d50b90 100644 --- a/ext/standard/tests/array/compact_variation2.phpt +++ b/ext/standard/tests/array/compact_variation2.phpt @@ -20,7 +20,7 @@ f(); --EXPECTF-- *** Testing compact() : usage variations - variables outside of current scope *** -Notice: compact(): Undefined variable $a in %s on line %d +Warning: compact(): Undefined variable $a in %s on line %d array(2) { ["b"]=> string(3) "f.b" @@ -28,7 +28,7 @@ array(2) { string(3) "f.c" } -Notice: compact(): Undefined variable $a in %s on line %d +Warning: compact(): Undefined variable $a in %s on line %d array(2) { ["b"]=> string(3) "f.b" diff --git a/ext/standard/tests/file/fgetcsv_variation12.phpt b/ext/standard/tests/file/fgetcsv_variation12.phpt index f1dfc52a2766..34a855c2d11d 100644 --- a/ext/standard/tests/file/fgetcsv_variation12.phpt +++ b/ext/standard/tests/file/fgetcsv_variation12.phpt @@ -88,9 +88,9 @@ echo "Done\n"; -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -100,9 +100,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -112,9 +112,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -124,9 +124,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -136,9 +136,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -148,9 +148,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -160,9 +160,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -172,9 +172,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -184,9 +184,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -196,9 +196,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -208,9 +208,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -220,9 +220,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -232,9 +232,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -244,9 +244,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -256,9 +256,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -268,9 +268,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -280,9 +280,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -292,9 +292,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -304,9 +304,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -316,9 +316,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -328,9 +328,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -340,9 +340,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -352,9 +352,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -364,9 +364,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -376,9 +376,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -388,9 +388,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -400,9 +400,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -412,9 +412,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -424,9 +424,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -436,9 +436,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -448,9 +448,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -460,9 +460,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -472,9 +472,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -484,9 +484,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -496,9 +496,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -508,9 +508,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -520,9 +520,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -532,9 +532,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -544,9 +544,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -556,9 +556,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -568,9 +568,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -580,9 +580,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -592,9 +592,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -604,9 +604,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -616,9 +616,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -628,9 +628,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -640,9 +640,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -652,9 +652,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -664,9 +664,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -676,9 +676,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -688,9 +688,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -700,9 +700,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -712,9 +712,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -724,9 +724,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -736,9 +736,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -748,9 +748,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -760,9 +760,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -772,9 +772,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -784,9 +784,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -796,9 +796,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -808,9 +808,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -820,9 +820,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -832,9 +832,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -844,9 +844,9 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -856,9 +856,9 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -868,9 +868,9 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -880,9 +880,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -892,9 +892,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -904,9 +904,9 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -916,9 +916,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -928,9 +928,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -940,9 +940,9 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," diff --git a/ext/standard/tests/file/fgetcsv_variation19.phpt b/ext/standard/tests/file/fgetcsv_variation19.phpt index dd5aa73567bd..bf692c7be9a2 100644 --- a/ext/standard/tests/file/fgetcsv_variation19.phpt +++ b/ext/standard/tests/file/fgetcsv_variation19.phpt @@ -86,7 +86,7 @@ echo "Done\n"; -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -96,7 +96,7 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -106,7 +106,7 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -116,7 +116,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -126,7 +126,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -136,7 +136,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -146,7 +146,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -156,7 +156,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -166,7 +166,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -176,7 +176,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -186,7 +186,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -196,7 +196,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -206,7 +206,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -216,7 +216,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -226,7 +226,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water,fruit" @@ -236,7 +236,7 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -246,7 +246,7 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -256,7 +256,7 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -266,7 +266,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -276,7 +276,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -286,7 +286,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -296,7 +296,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -306,7 +306,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -316,7 +316,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -326,7 +326,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -336,7 +336,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -346,7 +346,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -356,7 +356,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -366,7 +366,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -376,7 +376,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(11) "water fruit" @@ -386,7 +386,7 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -396,7 +396,7 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -406,7 +406,7 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -416,7 +416,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -426,7 +426,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -436,7 +436,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -446,7 +446,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -456,7 +456,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -466,7 +466,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -476,7 +476,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -486,7 +486,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -496,7 +496,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -506,7 +506,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -516,7 +516,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -526,7 +526,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(13) "water "fruit"" @@ -536,7 +536,7 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -546,7 +546,7 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -556,7 +556,7 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -566,7 +566,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -576,7 +576,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -586,7 +586,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -596,7 +596,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -606,7 +606,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -616,7 +616,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -626,7 +626,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -636,7 +636,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -646,7 +646,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -656,7 +656,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -666,7 +666,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -676,7 +676,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(19) "water\"fruit"\"air"" @@ -686,7 +686,7 @@ bool(false) -- Testing fgetcsv() with file opened using r mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -696,7 +696,7 @@ bool(false) -- Testing fgetcsv() with file opened using rb mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -706,7 +706,7 @@ bool(false) -- Testing fgetcsv() with file opened using rt mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -716,7 +716,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -726,7 +726,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -736,7 +736,7 @@ bool(false) -- Testing fgetcsv() with file opened using r+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -746,7 +746,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -756,7 +756,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -766,7 +766,7 @@ bool(false) -- Testing fgetcsv() with file opened using a+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -776,7 +776,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -786,7 +786,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -796,7 +796,7 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -806,7 +806,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -816,7 +816,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" @@ -826,7 +826,7 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d array(1) { [0]=> string(17) "water\"fruit"\"""" diff --git a/ext/standard/tests/file/fgetcsv_variation24.phpt b/ext/standard/tests/file/fgetcsv_variation24.phpt index f99ccd62d815..1a6ef177523f 100644 --- a/ext/standard/tests/file/fgetcsv_variation24.phpt +++ b/ext/standard/tests/file/fgetcsv_variation24.phpt @@ -90,9 +90,9 @@ echo "Done\n"; -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -102,9 +102,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -114,9 +114,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -126,9 +126,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -138,9 +138,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -150,9 +150,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(13) ""water",fruit" @@ -162,9 +162,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -174,9 +174,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -186,9 +186,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -198,9 +198,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -210,9 +210,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -222,9 +222,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) ""water","fruit"" @@ -234,9 +234,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -246,9 +246,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -258,9 +258,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -270,9 +270,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -282,9 +282,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -294,9 +294,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "^water^ ^fruit^" @@ -306,9 +306,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -318,9 +318,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -330,9 +330,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -342,9 +342,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -354,9 +354,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -366,9 +366,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "&water&:&fruit&" @@ -378,9 +378,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -390,9 +390,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -402,9 +402,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -414,9 +414,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -426,9 +426,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -438,9 +438,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(15) "=water===fruit=" @@ -450,9 +450,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -462,9 +462,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -474,9 +474,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -486,9 +486,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -498,9 +498,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -510,9 +510,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(17) "-water--fruit-air" @@ -522,9 +522,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -534,9 +534,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -546,9 +546,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -558,9 +558,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -570,9 +570,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -582,9 +582,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(21) "-water---fruit---air-" @@ -594,9 +594,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -606,9 +606,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -618,9 +618,9 @@ bool(false) -- Testing fgetcsv() with file opened using w+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -630,9 +630,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+ mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -642,9 +642,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+b mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," @@ -654,9 +654,9 @@ bool(false) -- Testing fgetcsv() with file opened using x+t mode -- -Notice: fgetcsv(): delimiter must be a single character in %s on line %d +Warning: fgetcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fgetcsv(): enclosure must be a single character in %s on line %d +Warning: fgetcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d array(1) { [0]=> string(23) "&""""&:&"&:,:":&,&:,,,," diff --git a/ext/standard/tests/file/fnmatch_maxpathlen.phpt b/ext/standard/tests/file/fnmatch_maxpathlen.phpt index 849e7710bbae..9ef2dd1a6786 100644 --- a/ext/standard/tests/file/fnmatch_maxpathlen.phpt +++ b/ext/standard/tests/file/fnmatch_maxpathlen.phpt @@ -7,12 +7,20 @@ if (!function_exists('fnmatch')) die('skip fnmatch() function is not available') --FILE-- getMessage() . "\n"; +} + +try { + fnmatch($longstring, 'blah'); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} + ?> --EXPECTF-- -Warning: fnmatch(): Filename exceeds the maximum allowed length of %d characters in %s on line %d -bool(false) - -Warning: fnmatch(): Pattern exceeds the maximum allowed length of %d characters in %s on line %d -bool(false) +fnmatch(): Argument #1 ($pattern) must have a length less than %d bytes +fnmatch(): Argument #2 ($filename) must have a length less than %d bytes diff --git a/ext/standard/tests/file/fputcsv_variation13.phpt b/ext/standard/tests/file/fputcsv_variation13.phpt index eb2746790bff..7c1d71093ee7 100644 --- a/ext/standard/tests/file/fputcsv_variation13.phpt +++ b/ext/standard/tests/file/fputcsv_variation13.phpt @@ -73,7 +73,7 @@ echo "Done\n"; -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -82,7 +82,7 @@ string(12) "water,fruit -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -91,7 +91,7 @@ string(12) "water,fruit -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -100,7 +100,7 @@ string(%d) "water,fruit -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -109,7 +109,7 @@ string(12) "water,fruit -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -118,7 +118,7 @@ string(12) "water,fruit -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -127,7 +127,7 @@ string(%d) "water,fruit -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -136,7 +136,7 @@ string(12) "water,fruit -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -145,7 +145,7 @@ string(12) "water,fruit -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -154,7 +154,7 @@ string(%d) "water,fruit -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -163,7 +163,7 @@ string(12) "water,fruit -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -172,7 +172,7 @@ string(12) "water,fruit -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -181,7 +181,7 @@ string(%d) "water,fruit -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -190,7 +190,7 @@ string(20) """"water"",""fruit" -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -199,7 +199,7 @@ string(20) """"water"",""fruit" -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -208,7 +208,7 @@ string(%d) """"water"",""fruit" -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -217,7 +217,7 @@ string(20) """"water"",""fruit" -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -226,7 +226,7 @@ string(20) """"water"",""fruit" -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -235,7 +235,7 @@ string(%d) """"water"",""fruit" -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -244,7 +244,7 @@ string(20) """"water"",""fruit" -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -253,7 +253,7 @@ string(20) """"water"",""fruit" -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -262,7 +262,7 @@ string(%d) """"water"",""fruit" -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -271,7 +271,7 @@ string(20) """"water"",""fruit" -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -280,7 +280,7 @@ string(20) """"water"",""fruit" -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(20) int(20) bool(false) @@ -289,7 +289,7 @@ string(%d) """"water"",""fruit" -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -298,7 +298,7 @@ string(22) """"water"",""fruit""" -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -307,7 +307,7 @@ string(22) """"water"",""fruit""" -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -316,7 +316,7 @@ string(%d) """"water"",""fruit""" -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -325,7 +325,7 @@ string(22) """"water"",""fruit""" -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -334,7 +334,7 @@ string(22) """"water"",""fruit""" -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -343,7 +343,7 @@ string(%d) """"water"",""fruit""" -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -352,7 +352,7 @@ string(22) """"water"",""fruit""" -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -361,7 +361,7 @@ string(22) """"water"",""fruit""" -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -370,7 +370,7 @@ string(%d) """"water"",""fruit""" -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -379,7 +379,7 @@ string(22) """"water"",""fruit""" -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -388,7 +388,7 @@ string(22) """"water"",""fruit""" -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -397,7 +397,7 @@ string(%d) """"water"",""fruit""" -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -406,7 +406,7 @@ string(18) ""^water^ ^fruit^" -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -415,7 +415,7 @@ string(18) ""^water^ ^fruit^" -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -424,7 +424,7 @@ string(%d) ""^water^ ^fruit^" -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -433,7 +433,7 @@ string(18) ""^water^ ^fruit^" -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -442,7 +442,7 @@ string(18) ""^water^ ^fruit^" -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -451,7 +451,7 @@ string(%d) ""^water^ ^fruit^" -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -460,7 +460,7 @@ string(18) ""^water^ ^fruit^" -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -469,7 +469,7 @@ string(18) ""^water^ ^fruit^" -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -478,7 +478,7 @@ string(%d) ""^water^ ^fruit^" -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -487,7 +487,7 @@ string(18) ""^water^ ^fruit^" -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -496,7 +496,7 @@ string(18) ""^water^ ^fruit^" -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -505,7 +505,7 @@ string(%d) ""^water^ ^fruit^" -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -514,7 +514,7 @@ string(16) "&water&:&fruit& -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -523,7 +523,7 @@ string(16) "&water&:&fruit& -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -532,7 +532,7 @@ string(%d) "&water&:&fruit& -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -541,7 +541,7 @@ string(16) "&water&:&fruit& -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -550,7 +550,7 @@ string(16) "&water&:&fruit& -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -559,7 +559,7 @@ string(%d) "&water&:&fruit& -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -568,7 +568,7 @@ string(16) "&water&:&fruit& -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -577,7 +577,7 @@ string(16) "&water&:&fruit& -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -586,7 +586,7 @@ string(%d) "&water&:&fruit& -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -595,7 +595,7 @@ string(16) "&water&:&fruit& -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -604,7 +604,7 @@ string(16) "&water&:&fruit& -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -613,7 +613,7 @@ string(%d) "&water&:&fruit& -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -622,7 +622,7 @@ string(16) "=water===fruit= -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -631,7 +631,7 @@ string(16) "=water===fruit= -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -640,7 +640,7 @@ string(%d) "=water===fruit= -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -649,7 +649,7 @@ string(16) "=water===fruit= -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -658,7 +658,7 @@ string(16) "=water===fruit= -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -667,7 +667,7 @@ string(%d) "=water===fruit= -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -676,7 +676,7 @@ string(16) "=water===fruit= -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -685,7 +685,7 @@ string(16) "=water===fruit= -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -694,7 +694,7 @@ string(%d) "=water===fruit= -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -703,7 +703,7 @@ string(16) "=water===fruit= -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -712,7 +712,7 @@ string(16) "=water===fruit= -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -721,7 +721,7 @@ string(%d) "=water===fruit= -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -730,7 +730,7 @@ string(18) "-water--fruit-air -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -739,7 +739,7 @@ string(18) "-water--fruit-air -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -748,7 +748,7 @@ string(%d) "-water--fruit-air -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -757,7 +757,7 @@ string(18) "-water--fruit-air -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -766,7 +766,7 @@ string(18) "-water--fruit-air -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -775,7 +775,7 @@ string(%d) "-water--fruit-air -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -784,7 +784,7 @@ string(18) "-water--fruit-air -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -793,7 +793,7 @@ string(18) "-water--fruit-air -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -802,7 +802,7 @@ string(%d) "-water--fruit-air -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -811,7 +811,7 @@ string(18) "-water--fruit-air -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -820,7 +820,7 @@ string(18) "-water--fruit-air -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -829,7 +829,7 @@ string(%d) "-water--fruit-air -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -838,7 +838,7 @@ string(22) "-water---fruit---air- -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -847,7 +847,7 @@ string(22) "-water---fruit---air- -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -856,7 +856,7 @@ string(%d) "-water---fruit---air- -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -865,7 +865,7 @@ string(22) "-water---fruit---air- -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -874,7 +874,7 @@ string(22) "-water---fruit---air- -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -883,7 +883,7 @@ string(%d) "-water---fruit---air- -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -892,7 +892,7 @@ string(22) "-water---fruit---air- -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -901,7 +901,7 @@ string(22) "-water---fruit---air- -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -910,7 +910,7 @@ string(%d) "-water---fruit---air- -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -919,7 +919,7 @@ string(22) "-water---fruit---air- -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -928,7 +928,7 @@ string(22) "-water---fruit---air- -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -937,7 +937,7 @@ string(%d) "-water---fruit---air- -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -946,7 +946,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -955,7 +955,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -964,7 +964,7 @@ string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -973,7 +973,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -982,7 +982,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -991,7 +991,7 @@ string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -1000,7 +1000,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -1009,7 +1009,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -1018,7 +1018,7 @@ string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -1027,7 +1027,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) @@ -1036,7 +1036,7 @@ string(32) ""&""""""""&:&""&:,:"":&,&:,,,," -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d int(32) int(32) bool(false) diff --git a/ext/standard/tests/file/fputcsv_variation14.phpt b/ext/standard/tests/file/fputcsv_variation14.phpt index e5e98c5ce266..5c4c669e7f56 100644 --- a/ext/standard/tests/file/fputcsv_variation14.phpt +++ b/ext/standard/tests/file/fputcsv_variation14.phpt @@ -81,9 +81,9 @@ echo "Done\n"; -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 12 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -93,9 +93,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 12 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -105,9 +105,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 12 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -117,9 +117,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 15 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -129,9 +129,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 15 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -141,9 +141,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 15 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -153,9 +153,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -165,9 +165,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -177,9 +177,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -189,9 +189,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -201,9 +201,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -213,9 +213,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -225,9 +225,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -237,9 +237,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -249,9 +249,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -261,9 +261,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -273,9 +273,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -285,9 +285,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 16 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -297,9 +297,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -309,9 +309,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -321,9 +321,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 18 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -333,9 +333,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 22 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -345,9 +345,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 22 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -357,9 +357,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 22 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -369,9 +369,9 @@ string(0) "" -- file opened in r -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 24 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -381,9 +381,9 @@ string(0) "" -- file opened in rb -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 24 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) @@ -393,9 +393,9 @@ string(0) "" -- file opened in rt -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d Notice: fputcsv(): Write of 24 bytes failed with errno=9 Bad file descriptor in %s on line %d bool(false) diff --git a/ext/standard/tests/file/fputcsv_variation9.phpt b/ext/standard/tests/file/fputcsv_variation9.phpt index e030c41bd205..957fb9966f38 100644 --- a/ext/standard/tests/file/fputcsv_variation9.phpt +++ b/ext/standard/tests/file/fputcsv_variation9.phpt @@ -73,9 +73,9 @@ echo "Done\n"; -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -84,9 +84,9 @@ string(12) "water,fruit -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -95,9 +95,9 @@ string(12) "water,fruit -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -106,9 +106,9 @@ string(%d) "water,fruit -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -117,9 +117,9 @@ string(12) "water,fruit -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -128,9 +128,9 @@ string(12) "water,fruit -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -139,9 +139,9 @@ string(%d) "water,fruit -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -150,9 +150,9 @@ string(12) "water,fruit -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -161,9 +161,9 @@ string(12) "water,fruit -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -172,9 +172,9 @@ string(%d) "water,fruit -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -183,9 +183,9 @@ string(12) "water,fruit -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -194,9 +194,9 @@ string(12) "water,fruit -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(12) int(12) bool(false) @@ -205,9 +205,9 @@ string(%d) "water,fruit -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -216,9 +216,9 @@ string(15) ""water","fruit -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -227,9 +227,9 @@ string(15) ""water","fruit -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -238,9 +238,9 @@ string(%d) ""water","fruit -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -249,9 +249,9 @@ string(15) ""water","fruit -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -260,9 +260,9 @@ string(15) ""water","fruit -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -271,9 +271,9 @@ string(%d) ""water","fruit -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -282,9 +282,9 @@ string(15) ""water","fruit -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -293,9 +293,9 @@ string(15) ""water","fruit -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -304,9 +304,9 @@ string(%d) ""water","fruit -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -315,9 +315,9 @@ string(15) ""water","fruit -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -326,9 +326,9 @@ string(15) ""water","fruit -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(15) int(15) bool(false) @@ -337,9 +337,9 @@ string(%d) ""water","fruit -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -348,9 +348,9 @@ string(16) ""water","fruit" -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -359,9 +359,9 @@ string(16) ""water","fruit" -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -370,9 +370,9 @@ string(%d) ""water","fruit" -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -381,9 +381,9 @@ string(16) ""water","fruit" -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -392,9 +392,9 @@ string(16) ""water","fruit" -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -403,9 +403,9 @@ string(%d) ""water","fruit" -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -414,9 +414,9 @@ string(16) ""water","fruit" -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -425,9 +425,9 @@ string(16) ""water","fruit" -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -436,9 +436,9 @@ string(%d) ""water","fruit" -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -447,9 +447,9 @@ string(16) ""water","fruit" -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -458,9 +458,9 @@ string(16) ""water","fruit" -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -469,9 +469,9 @@ string(%d) ""water","fruit" -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -480,9 +480,9 @@ string(18) "%^water^ ^fruit^% -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -491,9 +491,9 @@ string(18) "%^water^ ^fruit^% -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -502,9 +502,9 @@ string(%d) "%^water^ ^fruit^% -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -513,9 +513,9 @@ string(18) "%^water^ ^fruit^% -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -524,9 +524,9 @@ string(18) "%^water^ ^fruit^% -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -535,9 +535,9 @@ string(%d) "%^water^ ^fruit^% -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -546,9 +546,9 @@ string(18) "%^water^ ^fruit^% -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -557,9 +557,9 @@ string(18) "%^water^ ^fruit^% -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -568,9 +568,9 @@ string(%d) "%^water^ ^fruit^% -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -579,9 +579,9 @@ string(18) "%^water^ ^fruit^% -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -590,9 +590,9 @@ string(18) "%^water^ ^fruit^% -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -601,9 +601,9 @@ string(%d) "%^water^ ^fruit^% -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -612,9 +612,9 @@ string(16) "&water&:&fruit& -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -623,9 +623,9 @@ string(16) "&water&:&fruit& -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -634,9 +634,9 @@ string(%d) "&water&:&fruit& -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -645,9 +645,9 @@ string(16) "&water&:&fruit& -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -656,9 +656,9 @@ string(16) "&water&:&fruit& -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -667,9 +667,9 @@ string(%d) "&water&:&fruit& -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -678,9 +678,9 @@ string(16) "&water&:&fruit& -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -689,9 +689,9 @@ string(16) "&water&:&fruit& -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -700,9 +700,9 @@ string(%d) "&water&:&fruit& -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -711,9 +711,9 @@ string(16) "&water&:&fruit& -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -722,9 +722,9 @@ string(16) "&water&:&fruit& -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -733,9 +733,9 @@ string(%d) "&water&:&fruit& -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -744,9 +744,9 @@ string(16) "=water===fruit= -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -755,9 +755,9 @@ string(16) "=water===fruit= -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -766,9 +766,9 @@ string(%d) "=water===fruit= -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -777,9 +777,9 @@ string(16) "=water===fruit= -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -788,9 +788,9 @@ string(16) "=water===fruit= -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -799,9 +799,9 @@ string(%d) "=water===fruit= -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -810,9 +810,9 @@ string(16) "=water===fruit= -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -821,9 +821,9 @@ string(16) "=water===fruit= -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -832,9 +832,9 @@ string(%d) "=water===fruit= -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -843,9 +843,9 @@ string(16) "=water===fruit= -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -854,9 +854,9 @@ string(16) "=water===fruit= -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(16) int(16) bool(false) @@ -865,9 +865,9 @@ string(%d) "=water===fruit= -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -876,9 +876,9 @@ string(18) "-water--fruit-air -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -887,9 +887,9 @@ string(18) "-water--fruit-air -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -898,9 +898,9 @@ string(%d) "-water--fruit-air -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -909,9 +909,9 @@ string(18) "-water--fruit-air -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -920,9 +920,9 @@ string(18) "-water--fruit-air -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -931,9 +931,9 @@ string(%d) "-water--fruit-air -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -942,9 +942,9 @@ string(18) "-water--fruit-air -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -953,9 +953,9 @@ string(18) "-water--fruit-air -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -964,9 +964,9 @@ string(%d) "-water--fruit-air -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -975,9 +975,9 @@ string(18) "-water--fruit-air -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -986,9 +986,9 @@ string(18) "-water--fruit-air -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(18) int(18) bool(false) @@ -997,9 +997,9 @@ string(%d) "-water--fruit-air -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1008,9 +1008,9 @@ string(22) "-water---fruit---air- -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1019,9 +1019,9 @@ string(22) "-water---fruit---air- -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1030,9 +1030,9 @@ string(%d) "-water---fruit---air- -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1041,9 +1041,9 @@ string(22) "-water---fruit---air- -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1052,9 +1052,9 @@ string(22) "-water---fruit---air- -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1063,9 +1063,9 @@ string(%d) "-water---fruit---air- -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1074,9 +1074,9 @@ string(22) "-water---fruit---air- -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1085,9 +1085,9 @@ string(22) "-water---fruit---air- -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1096,9 +1096,9 @@ string(%d) "-water---fruit---air- -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1107,9 +1107,9 @@ string(22) "-water---fruit---air- -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1118,9 +1118,9 @@ string(22) "-water---fruit---air- -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(22) int(22) bool(false) @@ -1129,9 +1129,9 @@ string(%d) "-water---fruit---air- -- file opened in r+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1140,9 +1140,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in r+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1151,9 +1151,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in r+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1162,9 +1162,9 @@ string(%d) "&""""&:&"&:,:":&,&:,,,, -- file opened in a+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1173,9 +1173,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in a+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1184,9 +1184,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in a+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1195,9 +1195,9 @@ string(%d) "&""""&:&"&:,:":&,&:,,,, -- file opened in w+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1206,9 +1206,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in w+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1217,9 +1217,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in w+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1228,9 +1228,9 @@ string(%d) "&""""&:&"&:,:":&,&:,,,, -- file opened in x+ -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1239,9 +1239,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in x+b -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) @@ -1250,9 +1250,9 @@ string(24) "&""""&:&"&:,:":&,&:,,,, -- file opened in x+t -- -Notice: fputcsv(): delimiter must be a single character in %s on line %d +Warning: fputcsv(): Argument #3 ($delimiter) must be a single character in %s on line %d -Notice: fputcsv(): enclosure must be a single character in %s on line %d +Warning: fputcsv(): Argument #4 ($enclosure) must be a single character in %s on line %d int(24) int(24) bool(false) diff --git a/ext/standard/tests/file/glob_error_002-win32.phpt b/ext/standard/tests/file/glob_error_002-win32.phpt index 4597e28e4b65..ae21c30b92bc 100644 --- a/ext/standard/tests/file/glob_error_002-win32.phpt +++ b/ext/standard/tests/file/glob_error_002-win32.phpt @@ -11,13 +11,15 @@ if(substr(PHP_OS, 0, 3) != "WIN") getMessage() . "\n"; +} echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing glob() : error condition - pattern too long. *** - -Warning: glob(): Pattern exceeds the maximum allowed length of %d characters in %s on line %d -bool(false) +glob(): Argument #1 ($pattern) must have a length less than 2048 bytes Done diff --git a/ext/standard/tests/file/popen_pclose_error-win32.phpt b/ext/standard/tests/file/popen_pclose_error-win32.phpt new file mode 100644 index 000000000000..0b5af3d53a13 --- /dev/null +++ b/ext/standard/tests/file/popen_pclose_error-win32.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test popen() and pclose function: error conditions on Windows +--SKIPIF-- + +--FILE-- + +--CLEAN-- + +--EXPECT-- +*** Testing for error conditions *** + +Warning: popen(abc.txt,rw): No such file or directory in %s on line %d + +--- Done --- diff --git a/ext/standard/tests/file/popen_pclose_error.phpt b/ext/standard/tests/file/popen_pclose_error.phpt index 2f05e7788d98..fea5734dca12 100644 --- a/ext/standard/tests/file/popen_pclose_error.phpt +++ b/ext/standard/tests/file/popen_pclose_error.phpt @@ -3,26 +3,34 @@ Test popen() and pclose function: error conditions --SKIPIF-- --FILE-- getMessage() . "\n"; +} + $file_handle = fopen($file_path."/popen.tmp", "w"); fclose($file_handle); echo "\n--- Done ---"; + ?> --CLEAN-- ---EXPECTF-- +--EXPECT-- *** Testing for error conditions *** - -Warning: popen(abc.txt,rw): %s on line %d -bool(false) +popen(): Argument #2 ($mode) must be either "r" or "w" --- Done --- diff --git a/ext/standard/tests/general_functions/010.phpt b/ext/standard/tests/general_functions/010.phpt index 99971616d215..31b8bed9050c 100644 --- a/ext/standard/tests/general_functions/010.phpt +++ b/ext/standard/tests/general_functions/010.phpt @@ -11,11 +11,14 @@ class test { } } -var_dump(register_shutdown_function(array("test","__call"))); +try { + register_shutdown_function(array("test","__call")); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} echo "Done\n"; ?> ---EXPECTF-- -Warning: register_shutdown_function(): Invalid shutdown callback 'test::__call' passed in %s on line %d -bool(false) +--EXPECT-- +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "test::__call" not found or invalid function name Done diff --git a/ext/standard/tests/general_functions/bug32647.phpt b/ext/standard/tests/general_functions/bug32647.phpt index ff7bf9f056e6..09735c9d86c4 100644 --- a/ext/standard/tests/general_functions/bug32647.phpt +++ b/ext/standard/tests/general_functions/bug32647.phpt @@ -15,39 +15,73 @@ class bar } unset($obj); -register_shutdown_function(array($obj,"")); // Invalid -register_shutdown_function(array($obj,"some string")); // Invalid -register_shutdown_function(array(0,"")); // Invalid -register_shutdown_function(array('bar','foo')); // Invalid -register_shutdown_function(array(0,"some string")); // Invalid -register_shutdown_function('bar'); // Invalid -register_shutdown_function('foo'); // Valid -register_shutdown_function(array('bar','barfoo')); // Invalid -$obj = new bar; -register_shutdown_function(array($obj,'foobar')); // Invalid -register_shutdown_function(array($obj,'barfoo')); // Valid +try { + register_shutdown_function(array($obj,"")); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -?> ---EXPECTF-- -Warning: Undefined variable $obj in %s on line %d +try { + register_shutdown_function(array($obj,"some string")); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed in %s on line %d +try { + register_shutdown_function(array(0,"")); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: Undefined variable $obj in %s on line %d +try { + register_shutdown_function(array('bar','foo')); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} + +try { + register_shutdown_function(array(0,"some string")); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed in %s on line %d +try { + register_shutdown_function('bar'); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed in %s on line %d +register_shutdown_function('foo'); -Warning: register_shutdown_function(): Invalid shutdown callback 'bar::foo' passed in %s on line %d +try { + register_shutdown_function(array('bar','barfoo')); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} + +$obj = new bar; -Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed in %s on line %d +try { + register_shutdown_function(array($obj,'foobar')); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: register_shutdown_function(): Invalid shutdown callback 'bar' passed in %s on line %d +register_shutdown_function(array($obj,'barfoo')); -Warning: register_shutdown_function(): Invalid shutdown callback 'bar::barfoo' passed in %sbug32647.php on line %d +?> +--EXPECTF-- +Warning: Undefined variable $obj in %s on line %d +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "Array" not found or invalid function name -Warning: register_shutdown_function(): Invalid shutdown callback 'bar::foobar' passed in %sbug32647.php on line %d +Warning: Undefined variable $obj in %s on line %d +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "Array" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "Array" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "bar::foo" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "Array" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "bar" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "bar::barfoo" not found or invalid function name +register_shutdown_function(): Argument #1 ($function) must be a valid callback, function "bar::foobar" not found or invalid function name foo! bar! diff --git a/ext/standard/tests/general_functions/bug41037.phpt b/ext/standard/tests/general_functions/bug41037.phpt index c8d0a668d010..783b7c2acd73 100644 --- a/ext/standard/tests/general_functions/bug41037.phpt +++ b/ext/standard/tests/general_functions/bug41037.phpt @@ -4,8 +4,12 @@ Bug #41037 (unregister_tick_function() inside the tick function crash PHP) getMessage() . "\n"; + } } declare (ticks=1) { @@ -14,9 +18,7 @@ declare (ticks=1) { echo "Done\n"; } ?> ---EXPECTF-- -hello -Warning: unregister_tick_function(): Unable to delete tick function executed at the moment in %s on line %d +--EXPECT-- +helloRegistered tick function cannot be unregistered while it is being executed Done -hello -Warning: unregister_tick_function(): Unable to delete tick function executed at the moment in %s on line %d +helloRegistered tick function cannot be unregistered while it is being executed diff --git a/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt b/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt index 263c9a6def49..823ee70cec8c 100644 --- a/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt +++ b/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt @@ -11,8 +11,13 @@ if (!in_array(php_sapi_name(), $enabled_sapi)) { enable_dl=1 --FILE-- getMessage() . "\n"; +} + ?> --EXPECTF-- -Warning: dl(): File name exceeds the maximum allowed length of %d characters in %s on line %d -bool(false) +dl(): Argument #1 ($extension_filename) must be shorter than %d bytes diff --git a/ext/standard/tests/general_functions/ini_get_all.phpt b/ext/standard/tests/general_functions/ini_get_all.phpt index ca450f1bc43b..2b71b474a013 100644 --- a/ext/standard/tests/general_functions/ini_get_all.phpt +++ b/ext/standard/tests/general_functions/ini_get_all.phpt @@ -24,10 +24,10 @@ echo "Done\n"; --EXPECTF-- string(5) "array" -Warning: ini_get_all(): Unable to find extension '' in %s on line %d +Warning: ini_get_all(): Extension "" cannot be found in %s on line %d bool(false) -Warning: ini_get_all(): Unable to find extension 'nosuchextension' in %s on line %d +Warning: ini_get_all(): Extension "nosuchextension" cannot be found in %s on line %d bool(false) array(0) { } @@ -71,6 +71,6 @@ array(3) { array(0) { } -Warning: ini_get_all(): Unable to find extension '' in %sini_get_all.php on line %d +Warning: ini_get_all(): Extension "" cannot be found in %s on line %d bool(false) Done diff --git a/ext/standard/tests/mail/mail_basic7.phpt b/ext/standard/tests/mail/mail_basic7.phpt index 54d020e46ce2..b4957b6151db 100644 --- a/ext/standard/tests/mail/mail_basic7.phpt +++ b/ext/standard/tests/mail/mail_basic7.phpt @@ -29,10 +29,13 @@ $outFile = "mailBasic7.out"; echo "-- All Mail Content Parameters --\n"; // Calling mail() with all additional headers -var_dump( mail($to, $subject, $message, $additional_headers) ); -echo file_get_contents($outFile); -unlink($outFile); - +try { + var_dump(mail($to, $subject, $message, $additional_headers)); + echo file_get_contents($outFile); + unlink($outFile); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} echo "\n\n************* TEST ******************\n"; // Should fail all @@ -56,10 +59,13 @@ $outFile = "mailBasic7.out"; echo "-- All Mail Content Parameters --\n"; // Calling mail() with all additional headers -var_dump( mail($to, $subject, $message, $additional_headers) ); -echo file_get_contents($outFile); -unlink($outFile); - +try { + var_dump(mail($to, $subject, $message, $additional_headers)); + echo file_get_contents($outFile); + unlink($outFile); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} echo "\n\n************* TEST ******************\n"; // Should fail all @@ -81,10 +87,13 @@ $outFile = "mailBasic7.out"; echo "-- All Mail Content Parameters --\n"; // Calling mail() with all additional headers -var_dump( mail($to, $subject, $message, $additional_headers) ); -echo file_get_contents($outFile); -unlink($outFile); - +try { + var_dump(mail($to, $subject, $message, $additional_headers)); + echo file_get_contents($outFile); + unlink($outFile); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} echo "\n\n************* TEST ******************\n"; // Should fail most @@ -109,9 +118,13 @@ $outFile = "mailBasic7.out"; echo "-- All Mail Content Parameters --\n"; // Calling mail() with all additional headers -var_dump( mail($to, $subject, $message, $additional_headers) ); -echo file_get_contents($outFile); -unlink($outFile); +try { + var_dump(mail($to, $subject, $message, $additional_headers)); + echo file_get_contents($outFile); + unlink($outFile); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} ?> --EXPECTF-- @@ -135,27 +148,7 @@ A Message ************* TEST ****************** -- All Mail Content Parameters -- - -Warning: mail(): 'orig-date' header must be at most one header. Array is passed for 'orig-date' in %s on line %d - -Warning: mail(): 'from' header must be at most one header. Array is passed for 'from' in %s on line %d - -Warning: mail(): 'sender' header must be at most one header. Array is passed for 'sender' in %s on line %d - -Warning: mail(): 'reply-to' header must be at most one header. Array is passed for 'reply-to' in %s on line %d - -Warning: mail(): Extra header cannot contain 'To' header in %s on line %d - -Warning: mail(): 'bcc' header must be at most one header. Array is passed for 'bcc' in %s on line %d - -Warning: mail(): 'message-id' header must be at most one header. Array is passed for 'message-id' in %s on line %d - -Warning: mail(): 'in-reply-to' header must be at most one header. Array is passed for 'in-reply-to' in %s on line %d -bool(true) -To: user@example.com -Subject: Test Subject - -A Message +TypeError: Header "orig-date" must be of type string, array given ************* TEST ****************** @@ -184,22 +177,4 @@ A Message ************* TEST ****************** -- All Mail Content Parameters -- - -Warning: mail(): Header field name (*:foo1) contains invalid chars in %s on line %d - -Warning: mail(): Header field name (foo2:::) contains invalid chars in %s on line %d - -Warning: mail(): Header field name () contains invalid chars in %s on line %d - -Warning: mail(): Header field name (foo7) contains invalid chars in %s on line %d - -Warning: mail(): Header field value (foo10 => abc) contains invalid chars or format in %s on line %d -bool(true) -To: user@example.com -Subject: Test Subject -foo3(): bar1 -foo4@: bar1 -foo5|: bar1 -foo9: %&$#! - -A Message +ValueError: Header name "*:foo1" contains invalid characters diff --git a/ext/standard/tests/misc/time_sleep_until_error1.phpt b/ext/standard/tests/misc/time_sleep_until_error1.phpt index 2a409a38b407..dedc751e463b 100644 --- a/ext/standard/tests/misc/time_sleep_until_error1.phpt +++ b/ext/standard/tests/misc/time_sleep_until_error1.phpt @@ -8,8 +8,13 @@ Danilo Sanchi sanchi@grupporetina.com #PHPTestFest Cesena Italia on 2009-06-20 --FILE-- getMessage() . "\n"; +} + ?> ---EXPECTF-- -Warning: time_sleep_until(): Sleep until to time is less than current time in %s on line 2 -bool(false) +--EXPECT-- +time_sleep_until(): Argument #1 ($timestamp) must be a timestamp greater than or equal to the current time diff --git a/ext/standard/tests/password/password_removed_salt_option.phpt b/ext/standard/tests/password/password_removed_salt_option.phpt index 356bdec3e8aa..e2742ff76db1 100644 --- a/ext/standard/tests/password/password_removed_salt_option.phpt +++ b/ext/standard/tests/password/password_removed_salt_option.phpt @@ -12,9 +12,9 @@ var_dump(strlen(password_hash("test", PASSWORD_BCRYPT, array("salt" => "12345678 echo "OK!"; ?> --EXPECTF-- -Warning: password_hash(): The 'salt' option is no longer supported. The provided salt has been been ignored in %s on line %d +Warning: password_hash(): The "salt" option is ignored, since providing a custom salt is no longer supported in %s on line %d int(60) -Warning: password_hash(): The 'salt' option is no longer supported. The provided salt has been been ignored in %s on line %d +Warning: password_hash(): The "salt" option is ignored, since providing a custom salt is no longer supported in %s on line %d int(60) OK! diff --git a/ext/standard/tests/serialize/bug14293.phpt b/ext/standard/tests/serialize/bug14293.phpt index ae108ba53a74..86066607fbcb 100644 --- a/ext/standard/tests/serialize/bug14293.phpt +++ b/ext/standard/tests/serialize/bug14293.phpt @@ -26,7 +26,7 @@ var_dump($t); --EXPECTF-- __sleep called -Notice: serialize(): "b" returned as member variable from __sleep() but does not exist in %sbug14293.php on line %d +Warning: serialize(): "b" returned as member variable from __sleep() but does not exist in %s on line %d O:1:"t":1:{s:1:"a";s:5:"hello";} object(t)#%d (1) { ["a"]=> diff --git a/ext/standard/tests/serialize/bug35895.phpt b/ext/standard/tests/serialize/bug35895.phpt index 22fce0d1f262..de7ff6d3e1a4 100644 --- a/ext/standard/tests/serialize/bug35895.phpt +++ b/ext/standard/tests/serialize/bug35895.phpt @@ -21,4 +21,4 @@ serialize($obj); ?> --EXPECTF-- -Notice: serialize(): "parents" returned as member variable from __sleep() but does not exist in %sbug35895.php on line %d +Warning: serialize(): "parents" returned as member variable from __sleep() but does not exist in %s on line %d diff --git a/ext/standard/tests/serialize/bug71995.phpt b/ext/standard/tests/serialize/bug71995.phpt index f1c45d25cc9c..bf62c7da1eea 100644 --- a/ext/standard/tests/serialize/bug71995.phpt +++ b/ext/standard/tests/serialize/bug71995.phpt @@ -18,7 +18,7 @@ var_dump($s); var_dump(unserialize($s)); ?> --EXPECTF-- -Notice: serialize(): "b" is returned from __sleep multiple times in %sbug71995.php on line %d +Notice: serialize(): "b" is returned from __sleep() multiple times in %s on line %d string(39) "O:1:"A":1:{s:1:"b";O:8:"stdClass":0:{}}" object(A)#%d (1) { ["b"]=> diff --git a/ext/standard/tests/serialize/bug79526.phpt b/ext/standard/tests/serialize/bug79526.phpt index 19f07fe9891e..440c18772d53 100644 --- a/ext/standard/tests/serialize/bug79526.phpt +++ b/ext/standard/tests/serialize/bug79526.phpt @@ -24,9 +24,9 @@ serialize(new B()); ?> Done --EXPECTF-- -Notice: serialize(): A::__sleep should return an array only containing the names of instance-variables to serialize in %sbug79526.php on line %d +Warning: serialize(): A::__sleep() should return an array only containing the names of instance-variables to serialize in %s on line %d -Notice: serialize(): B::__sleep should return an array only containing the names of instance-variables to serialize in %sbug79526.php on line %d +Warning: serialize(): B::__sleep() should return an array only containing the names of instance-variables to serialize in %s on line %d -Notice: serialize(): "1" returned as member variable from __sleep() but does not exist in %sbug79526.php on line %d +Warning: serialize(): "1" returned as member variable from __sleep() but does not exist in %s on line %d Done diff --git a/ext/standard/tests/serialize/max_depth.phpt b/ext/standard/tests/serialize/max_depth.phpt index 312f22226c21..1899e21f0472 100644 --- a/ext/standard/tests/serialize/max_depth.phpt +++ b/ext/standard/tests/serialize/max_depth.phpt @@ -104,8 +104,8 @@ var_dump(is_array(unserialize( ?> --EXPECTF-- Invalid max_depth: -unserialize(): "max_depth" option must be of type int, string given -unserialize(): "max_depth" option must be greater than or equal to 0 +unserialize(): Option "max_depth" must be of type int, string given +unserialize(): Option "max_depth" must be greater than or equal to 0 Array: bool(true) diff --git a/ext/standard/tests/serialize/sleep_mangled_name_clash.phpt b/ext/standard/tests/serialize/sleep_mangled_name_clash.phpt index df9db6a473a7..ac0c835a45a9 100644 --- a/ext/standard/tests/serialize/sleep_mangled_name_clash.phpt +++ b/ext/standard/tests/serialize/sleep_mangled_name_clash.phpt @@ -12,5 +12,5 @@ $s = serialize(new Test); var_dump(str_replace("\0", '\0', $s)); ?> --EXPECTF-- -Notice: serialize(): "priv" is returned from __sleep multiple times in %s on line %d +Notice: serialize(): "priv" is returned from __sleep() multiple times in %s on line %d string(37) "O:4:"Test":1:{s:10:"\0Test\0priv";N;}" diff --git a/ext/standard/tests/serialize/sleep_undefined_declared_properties.phpt b/ext/standard/tests/serialize/sleep_undefined_declared_properties.phpt index 05a638cfba8d..3c7f802e670b 100644 --- a/ext/standard/tests/serialize/sleep_undefined_declared_properties.phpt +++ b/ext/standard/tests/serialize/sleep_undefined_declared_properties.phpt @@ -21,9 +21,9 @@ var_dump(serialize(new Test)); ?> --EXPECTF-- -Notice: serialize(): "pub" returned as member variable from __sleep() but does not exist in %s on line %d +Warning: serialize(): "pub" returned as member variable from __sleep() but does not exist in %s on line %d -Notice: serialize(): "prot" returned as member variable from __sleep() but does not exist in %s on line %d +Warning: serialize(): "prot" returned as member variable from __sleep() but does not exist in %s on line %d -Notice: serialize(): "priv" returned as member variable from __sleep() but does not exist in %s on line %d +Warning: serialize(): "priv" returned as member variable from __sleep() but does not exist in %s on line %d string(15) "O:4:"Test":0:{}" diff --git a/ext/standard/tests/serialize/unserialize_error_001.phpt b/ext/standard/tests/serialize/unserialize_error_001.phpt index 25bad8b1b1f4..f390c36a78fe 100644 --- a/ext/standard/tests/serialize/unserialize_error_001.phpt +++ b/ext/standard/tests/serialize/unserialize_error_001.phpt @@ -8,16 +8,27 @@ class foo { $z = array(new foo(), 2, "3"); $s = serialize($z); -var_dump(unserialize($s, ["allowed_classes" => null])); -var_dump(unserialize($s, ["allowed_classes" => 0])); -var_dump(unserialize($s, ["allowed_classes" => 1])); -?> ---EXPECTF-- -Warning: unserialize(): allowed_classes option should be array or boolean in %s on line %d -bool(false) +try { + unserialize($s, ["allowed_classes" => null]); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} + +try { + unserialize($s, ["allowed_classes" => 0]); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} -Warning: unserialize(): allowed_classes option should be array or boolean in %s on line %d -bool(false) -Warning: unserialize(): allowed_classes option should be array or boolean in %s on line %d -bool(false) +try { + unserialize($s, ["allowed_classes" => 1]); +} catch (TypeError $exception) { + echo $exception->getMessage() . "\n"; +} + +?> +--EXPECT-- +unserialize(): Option "allowed_classes" must be of type array|bool, null given +unserialize(): Option "allowed_classes" must be of type array|bool, int given +unserialize(): Option "allowed_classes" must be of type array|bool, int given diff --git a/ext/standard/tests/streams/stream_get_contents_negative_length.phpt b/ext/standard/tests/streams/stream_get_contents_negative_length.phpt index a0efebc1f193..56d091c0b449 100644 --- a/ext/standard/tests/streams/stream_get_contents_negative_length.phpt +++ b/ext/standard/tests/streams/stream_get_contents_negative_length.phpt @@ -12,5 +12,5 @@ var_dump(stream_get_contents($tmp, -2)); --EXPECTF-- string(2) "bc" -Warning: stream_get_contents(): Length must be greater than or equal to 0, or -1 in %s on line %d +Warning: stream_get_contents(): Argument #2 ($maxlength) must be greater than or equal to 0, or -1 in %s on line %d bool(false) diff --git a/ext/standard/tests/strings/bug40754.phpt b/ext/standard/tests/strings/bug40754.phpt index b71f28044aef..609e47732a6d 100644 --- a/ext/standard/tests/strings/bug40754.phpt +++ b/ext/standard/tests/strings/bug40754.phpt @@ -17,7 +17,11 @@ try { echo $exception->getMessage() . "\n"; } -var_dump(substr_compare("abcde", "abc", $v, $v)); +try { + substr_compare("abcde", "abc", $v, $v); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} try { stripos("abcde", "abc", $v); @@ -31,7 +35,11 @@ try { echo $exception->getMessage() . "\n"; } -var_dump(substr_count("abcde", "abc", 1, $v)); +try { + substr_count("abcde", "abc", 1, $v); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} try { strpos("abcde", "abc", $v); @@ -57,29 +65,32 @@ try { echo $exception->getMessage() . "\n"; } +try { + strripos("abcde", "abc", $v); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} + var_dump(strncmp("abcde", "abc", $v)); var_dump(chunk_split("abcde", $v, "abc")); var_dump(substr("abcde", $v, $v)); ?> ---EXPECTF-- +--EXPECT-- string(4) "bcde" string(6) "abcdex" bool(false) bool(false) substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) - -Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d -bool(false) +substr_compare(): Argument #3 ($offset) must be contained in argument #1 ($main_str) stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) - -Warning: substr_count(): Invalid length value in %s on line %d -bool(false) +substr_count(): Argument #4 ($length) must be contained in argument #1 ($haystack) strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) +strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) int(2) string(8) "abcdeabc" bool(false) diff --git a/ext/standard/tests/strings/bug44703.phpt b/ext/standard/tests/strings/bug44703.phpt index f9f0e6ea8f0f..d5be483f87a0 100644 --- a/ext/standard/tests/strings/bug44703.phpt +++ b/ext/standard/tests/strings/bug44703.phpt @@ -22,25 +22,25 @@ var_dump(htmlspecialchars("<>", ENT_COMPAT, str_repeat('a', 100))); ?> --EXPECTF-- -Warning: htmlspecialchars(): Charset `1' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "1" is not supported, assuming utf-8 in %s on line %d string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset `12' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "12" is not supported, assuming utf-8 in %s on line %d string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset `125' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "125" is not supported, assuming utf-8 in %s on line %d string(35) "<a href='test'>Test</a>" string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset `12526' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "12526" is not supported, assuming utf-8 in %s on line %d string(35) "<a href='test'>Test</a>" string(8) "<>" -Warning: htmlspecialchars(): Charset `8666' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "8666" is not supported, assuming utf-8 in %s on line %d string(8) "<>" string(8) "<>" string(8) "<>" string(8) "<>" -Warning: htmlspecialchars(): Charset `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" is not supported, assuming utf-8 in %s on line %d string(8) "<>" diff --git a/ext/standard/tests/strings/bug67252.phpt b/ext/standard/tests/strings/bug67252.phpt index eab2112afa35..bd758a1c79fd 100644 --- a/ext/standard/tests/strings/bug67252.phpt +++ b/ext/standard/tests/strings/bug67252.phpt @@ -8,5 +8,5 @@ var_dump(convert_uudecode($a)); ?> --EXPECTF-- -Warning: convert_uudecode(): The given parameter is not a valid uuencoded string in %s on line %d +Warning: convert_uudecode(): Argument #1 ($data) is not a valid uuencoded string in %s on line %d bool(false) diff --git a/ext/standard/tests/strings/substr_count_basic.phpt b/ext/standard/tests/strings/substr_count_basic.phpt index a98a51bea26f..3b871ac0da3d 100644 --- a/ext/standard/tests/strings/substr_count_basic.phpt +++ b/ext/standard/tests/strings/substr_count_basic.phpt @@ -34,8 +34,8 @@ var_dump(substr_count($a, "bca", -200, -50)); ?> --EXPECT-- ***Testing basic operations *** -substr_count(): Argument #2 ($needle) must be a non-empty string -substr_count(): Argument #2 ($needle) must be a non-empty string +substr_count(): Argument #2 ($needle) cannot be empty +substr_count(): Argument #2 ($needle) cannot be empty int(0) int(0) int(0) diff --git a/ext/standard/tests/strings/substr_count_error.phpt b/ext/standard/tests/strings/substr_count_error.phpt index 648d9b51e8c6..dc0d3d9834eb 100644 --- a/ext/standard/tests/strings/substr_count_error.phpt +++ b/ext/standard/tests/strings/substr_count_error.phpt @@ -21,23 +21,27 @@ try { } /* Using offset and length to go beyond the size of the string: - Warning message expected, as length+offset > length of string */ -var_dump( substr_count($str, "i", 5, 7) ); + Exception is expected, as length+offset > length of string */ +try { + substr_count($str, "i", 5, 7); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} /* length too small */ -var_dump( substr_count($str, "t", 2, -20) ); +try { + substr_count($str, "t", 2, -20); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing error conditions *** substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) - -Warning: substr_count(): Invalid length value in %s on line %d -bool(false) - -Warning: substr_count(): Invalid length value in %s on line %d -bool(false) +substr_count(): Argument #4 ($length) must be contained in argument #1 ($haystack) +substr_count(): Argument #4 ($length) must be contained in argument #1 ($haystack) Done diff --git a/ext/standard/tests/strings/uuencode.phpt b/ext/standard/tests/strings/uuencode.phpt index 8199a2ed0571..b0a2a2321d02 100644 --- a/ext/standard/tests/strings/uuencode.phpt +++ b/ext/standard/tests/strings/uuencode.phpt @@ -27,6 +27,6 @@ string(36) "6;F]T('9Ename)); + php_error_docref(NULL, E_WARNING, "%s::__sleep() should return an array only containing the names of instance-variables to serialize", ZSTR_VAL(ce->name)); return FAILURE; } @@ -785,7 +785,7 @@ static int php_var_serialize_try_add_sleep_prop( if (!zend_hash_add(ht, name, val)) { php_error_docref(NULL, E_NOTICE, - "\"%s\" is returned from __sleep multiple times", ZSTR_VAL(error_name)); + "\"%s\" is returned from __sleep() multiple times", ZSTR_VAL(error_name)); return SUCCESS; } @@ -810,8 +810,8 @@ static int php_var_serialize_get_sleep_props( ZVAL_DEREF(name_val); if (Z_TYPE_P(name_val) != IS_STRING) { - php_error_docref(NULL, E_NOTICE, - "%s::__sleep should return an array only containing the names of instance-variables to serialize", + php_error_docref(NULL, E_WARNING, + "%s::__sleep() should return an array only containing the names of instance-variables to serialize", ZSTR_VAL(ce->name)); } @@ -858,7 +858,7 @@ static int php_var_serialize_get_sleep_props( break; } - php_error_docref(NULL, E_NOTICE, + php_error_docref(NULL, E_WARNING, "\"%s\" returned as member variable from __sleep() but does not exist", ZSTR_VAL(name)); zend_tmp_string_release(tmp_name); } ZEND_HASH_FOREACH_END(); @@ -1195,8 +1195,7 @@ PHPAPI void php_unserialize_with_options(zval *return_value, const char *buf, co classes = zend_hash_str_find_deref(options, "allowed_classes", sizeof("allowed_classes")-1); if (classes && Z_TYPE_P(classes) != IS_ARRAY && Z_TYPE_P(classes) != IS_TRUE && Z_TYPE_P(classes) != IS_FALSE) { - php_error_docref(NULL, E_WARNING, "allowed_classes option should be array or boolean"); - RETVAL_FALSE; + zend_type_error("%s(): Option \"allowed_classes\" must be of type array|bool, %s given", function_name, zend_zval_type_name(classes)); goto cleanup; } @@ -1225,11 +1224,11 @@ PHPAPI void php_unserialize_with_options(zval *return_value, const char *buf, co max_depth = zend_hash_str_find_deref(options, "max_depth", sizeof("max_depth") - 1); if (max_depth) { if (Z_TYPE_P(max_depth) != IS_LONG) { - zend_type_error("%s(): \"max_depth\" option must be of type int, %s given", function_name, zend_zval_type_name(max_depth)); + zend_type_error("%s(): Option \"max_depth\" must be of type int, %s given", function_name, zend_zval_type_name(max_depth)); goto cleanup; } if (Z_LVAL_P(max_depth) < 0) { - zend_value_error("%s(): \"max_depth\" option must be greater than or equal to 0", function_name); + zend_value_error("%s(): Option \"max_depth\" must be greater than or equal to 0", function_name); goto cleanup; } diff --git a/ext/sysvshm/tests/001.phpt b/ext/sysvshm/tests/001.phpt index 106f6699ee87..e27686592a77 100644 --- a/ext/sysvshm/tests/001.phpt +++ b/ext/sysvshm/tests/001.phpt @@ -7,13 +7,24 @@ if (!function_exists('ftok')){ print 'skip'; } ?> --FILE-- getMessage() . \PHP_EOL; +} + try { - var_dump(ftok("","")); + ftok(-1, -1); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + +try { + ftok("qwertyu","qwertyu"); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } -var_dump(ftok(-1, -1)); -var_dump(ftok("qwertyu","qwertyu")); var_dump(ftok("nonexistentfile","q")); @@ -23,12 +34,8 @@ echo "Done\n"; ?> --EXPECTF-- ftok(): Argument #1 ($pathname) cannot be empty - -Warning: ftok(): Project identifier is invalid in %s on line %d -int(-1) - -Warning: ftok(): Project identifier is invalid in %s on line %d -int(-1) +ftok(): Argument #2 ($proj) must be 1 byte long +ftok(): Argument #2 ($proj) must be 1 byte long Warning: ftok(): ftok() failed - No such file or directory in %s on line %d int(-1) diff --git a/tests/classes/bug26737.phpt b/tests/classes/bug26737.phpt index f6f33fbf805f..ea7ae1ed9a1c 100644 --- a/tests/classes/bug26737.phpt +++ b/tests/classes/bug26737.phpt @@ -18,5 +18,5 @@ $data = serialize($foo); var_dump(str_replace("\0", '\0', $data)); ?> --EXPECTF-- -Notice: serialize(): "no_such" returned as member variable from __sleep() but does not exist in %s on line %d +Warning: serialize(): "no_such" returned as member variable from __sleep() but does not exist in %s on line %d string(114) "O:3:"foo":3:{s:12:"\0foo\0private";s:7:"private";s:12:"\0*\0protected";s:9:"protected";s:6:"public";s:6:"public";}" From b0faf9d44c64abf8a4de39c0df01c2ced502d93c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sun, 13 Sep 2020 13:23:42 +0200 Subject: [PATCH 3/8] Address review comments --- ext/mbstring/mbstring.c | 3 +-- ext/standard/basic_functions.c | 4 ++-- ext/standard/dir.c | 4 ++-- ext/standard/dl.c | 4 ++-- ext/standard/file.c | 8 ++++---- ext/standard/ftok.c | 2 +- ext/standard/html.c | 2 +- ext/standard/mail.c | 12 ++++++------ ext/standard/math.c | 2 +- ext/standard/streamsfuncs.c | 4 ++-- .../tests/general_functions/dl-cve-2007-4887.phpt | 9 +++------ ext/standard/tests/misc/time_sleep_until_error1.phpt | 11 ++++------- 12 files changed, 29 insertions(+), 36 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index e1fb2472e445..d94049c31f59 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2233,8 +2233,7 @@ PHP_FUNCTION(mb_strcut) } if (from > string.len) { - zend_argument_value_error(3, "must be contained in argument #1 ($str)"); - RETURN_THROWS(); + RETURN_EMPTY_STRING(); } ret = mbfl_strcut(&string, &result, from, len); diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 5df5dd772aa8..d0c8805fe461 100755 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1310,8 +1310,8 @@ PHP_FUNCTION(time_sleep_until) target_ns = (uint64_t) (target_secs * ns_per_sec); current_ns = ((uint64_t) tm.tv_sec) * ns_per_sec + ((uint64_t) tm.tv_usec) * 1000; if (target_ns < current_ns) { - zend_argument_value_error(1, "must be a timestamp greater than or equal to the current time"); - RETURN_THROWS(); + php_error_docref(NULL, E_WARNING, "Argument #1 ($timestamp) must be greater than or equal to the current time"); + RETURN_FALSE; } diff_ns = target_ns - current_ns; diff --git a/ext/standard/dir.c b/ext/standard/dir.c index ca85b537798f..98bff12fc2bc 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -415,8 +415,8 @@ PHP_FUNCTION(glob) ZEND_PARSE_PARAMETERS_END(); if (pattern_len >= MAXPATHLEN) { - zend_argument_value_error(1, "must have a length less than %d bytes", MAXPATHLEN); - RETURN_THROWS(); + php_error_docref(NULL, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); + RETURN_FALSE; } if ((GLOB_AVAILABLE_FLAGS & flags) != flags) { diff --git a/ext/standard/dl.c b/ext/standard/dl.c index 8d6bbb52e8b0..b7e3b3bfeb8a 100644 --- a/ext/standard/dl.c +++ b/ext/standard/dl.c @@ -54,8 +54,8 @@ PHPAPI PHP_FUNCTION(dl) } if (filename_len >= MAXPATHLEN) { - zend_argument_value_error(1, "must be shorter than %d bytes", MAXPATHLEN); - RETURN_THROWS(); + php_error_docref(NULL, E_WARNING, "Filename exceeds the maximum allowed length of %d characters", MAXPATHLEN); + RETURN_FALSE; } php_dl(filename, MODULE_TEMPORARY, return_value, 0); diff --git a/ext/standard/file.c b/ext/standard/file.c index 414e3a249510..7cf8bde67f7a 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -2423,12 +2423,12 @@ PHP_FUNCTION(fnmatch) ZEND_PARSE_PARAMETERS_END(); if (filename_len >= MAXPATHLEN) { - zend_argument_value_error(1, "must have a length less than %d bytes", MAXPATHLEN); - RETURN_THROWS(); + php_error_docref(NULL, E_WARNING, "Filename exceeds the maximum allowed length of %d characters", MAXPATHLEN); + RETURN_FALSE; } if (pattern_len >= MAXPATHLEN) { - zend_argument_value_error(2, "must have a length less than %d bytes", MAXPATHLEN); - RETURN_THROWS(); + php_error_docref(NULL, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); + RETURN_FALSE; } RETURN_BOOL( ! fnmatch( pattern, filename, (int)flags )); diff --git a/ext/standard/ftok.c b/ext/standard/ftok.c index 77fddb6304b2..1f17ced7d995 100644 --- a/ext/standard/ftok.c +++ b/ext/standard/ftok.c @@ -45,7 +45,7 @@ PHP_FUNCTION(ftok) } if (proj_len != 1){ - zend_argument_value_error(2, "must be 1 byte long"); + zend_argument_value_error(2, "must be a single character"); RETURN_THROWS(); } diff --git a/ext/standard/html.c b/ext/standard/html.c index 8e3d2bf64af7..463e55c255cb 100644 --- a/ext/standard/html.c +++ b/ext/standard/html.c @@ -382,7 +382,7 @@ static enum entity_charset determine_charset(const char *charset_hint, zend_bool } if (!quiet) { - php_error_docref(NULL, E_WARNING, "Charset \"%s\" is not supported, assuming utf-8", + php_error_docref(NULL, E_WARNING, "Charset \"%s\" is not supported, assuming UTF-8", charset_hint); } } diff --git a/ext/standard/mail.c b/ext/standard/mail.c index 487282b642e0..1cf195c81a3e 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -133,11 +133,11 @@ static void php_mail_build_headers_elems(smart_str *s, zend_string *key, zval *v ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(val), tmp_key, tmp_val) { if (tmp_key) { - php_error_docref(NULL, E_WARNING, "Multiple header key must be numeric index (%s)", ZSTR_VAL(tmp_key)); + zend_type_error("Header \"%s\" must only contain numeric keys, \"%s\" found", ZSTR_VAL(key), ZSTR_VAL(tmp_key)); continue; } if (Z_TYPE_P(tmp_val) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "Multiple header values must be string (%s)", ZSTR_VAL(key)); + zend_type_error("Header \"%s\" must only contain values of type string, %s found", ZSTR_VAL(key), zend_zval_type_name(tmp_val)); continue; } php_mail_build_headers_elem(s, key, tmp_val); @@ -189,8 +189,8 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) break; case sizeof("to")-1: /* "to", "cc" */ if (!strncasecmp("to", ZSTR_VAL(key), ZSTR_LEN(key))) { - php_error_docref(NULL, E_WARNING, "The additional headers cannot contain the \"To\" header"); - continue; + zend_value_error("The additional headers cannot contain the \"To\" header"); + break; } if (!strncasecmp("cc", ZSTR_VAL(key), ZSTR_LEN(key))) { PHP_MAIL_BUILD_HEADER_CHECK("cc", s, key, val); @@ -223,8 +223,8 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) break; case sizeof("subject")-1: if (!strncasecmp("subject", ZSTR_VAL(key), ZSTR_LEN(key))) { - php_error_docref(NULL, E_WARNING, "The additional headers cannot contain the \"Subject\" header"); - continue; + zend_value_error("The additional headers cannot contain the \"Subject\" header"); + break; } PHP_MAIL_BUILD_HEADER_DEFAULT(s, key, val); break; diff --git a/ext/standard/math.c b/ext/standard/math.c index d11eef919e95..fbca5fe218ca 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -877,7 +877,7 @@ PHPAPI zend_string * _php_math_zvaltobase(zval *arg, int base) /* Don't try to convert +/- infinity */ if (fvalue == ZEND_INFINITY || fvalue == -ZEND_INFINITY) { - zend_value_error("Number is too large"); + zend_value_error("An infinite value cannot be converted to base " ZEND_LONG_FMT, base); return NULL; } diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 1310c88744e2..8e4c4ff2611a 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -432,8 +432,8 @@ PHP_FUNCTION(stream_get_contents) if (maxlen_is_null) { maxlen = (ssize_t) PHP_STREAM_COPY_ALL; } else if (maxlen < 0 && maxlen != PHP_STREAM_COPY_ALL) { - php_error_docref(NULL, E_WARNING, "Argument #2 ($maxlength) must be greater than or equal to 0, or -1"); - RETURN_FALSE; + zend_argument_value_error(2, "must be greater than or equal to -1"); + RETURN_THROWS(); } php_stream_from_zval(stream, zsrc); diff --git a/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt b/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt index 823ee70cec8c..0fe2a5814343 100644 --- a/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt +++ b/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt @@ -12,12 +12,9 @@ enable_dl=1 --FILE-- getMessage() . "\n"; -} +var_dump(dl(str_repeat("a", 8376757))); ?> --EXPECTF-- -dl(): Argument #1 ($extension_filename) must be shorter than %d bytes +Warning: dl(): Filename exceeds the maximum allowed length of %d characters in %s on line %d +bool(false) diff --git a/ext/standard/tests/misc/time_sleep_until_error1.phpt b/ext/standard/tests/misc/time_sleep_until_error1.phpt index dedc751e463b..4afac1aa8f1d 100644 --- a/ext/standard/tests/misc/time_sleep_until_error1.phpt +++ b/ext/standard/tests/misc/time_sleep_until_error1.phpt @@ -9,12 +9,9 @@ Danilo Sanchi sanchi@grupporetina.com --FILE-- getMessage() . "\n"; -} +var_dump(time_sleep_until(time() -1)); ?> ---EXPECT-- -time_sleep_until(): Argument #1 ($timestamp) must be a timestamp greater than or equal to the current time +--EXPECTF-- +Warning: time_sleep_until(): Argument #1 ($timestamp) must be a timestamp greater than or equal to the current time in %s on line %d +bool(false) From 88ee6ad04b505fa310f19ab1438c48e25e32572a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sun, 13 Sep 2020 23:44:51 +0200 Subject: [PATCH 4/8] Revert "Make a few small corrections to ext/openssl parameter names" This reverts commit 24e9599d35010714f25e04b33e84a0ad692ad096. --- ext/openssl/openssl.stub.php | 14 +++++++------- ext/openssl/openssl_arginfo.h | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php index acce5126bf27..8454c4fd162b 100644 --- a/ext/openssl/openssl.stub.php +++ b/ext/openssl/openssl.stub.php @@ -57,7 +57,7 @@ function openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, &$outp function openssl_csr_sign(OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, $private_key, int $days, ?array $options = null, int $serial = 0): OpenSSLCertificate|false {} /** @param OpenSSLAsymmetricKey $private_key */ -function openssl_csr_new(array $distinguished_names, &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|false {} +function openssl_csr_new(array $distinguished_names, &$private_key, ?array $options = null, ?array $extra_options = null): OpenSSLCertificateSigningRequest|false {} function openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false {} @@ -105,7 +105,7 @@ function openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false {} function openssl_pbkdf2(string $passphrase, string $salt, int $key_length, int $iterations, string $digest_algorithm = "sha1"): string|false {} -function openssl_pkcs7_verify(string $filename, int $flags, ?string $output_filename = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $pkcs7_filename = null): bool|int {} +function openssl_pkcs7_verify(string $filename, int $flags, ?string $output_filename = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $pk7_filename = null): bool|int {} /** @param OpenSSLCertificate|array|string $certificate */ function openssl_pkcs7_encrypt(string $filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $cipher_algorithm = OPENSSL_CIPHER_RC2_40): bool {} @@ -177,15 +177,15 @@ function openssl_verify(string $data, string $signature, $public_key, string|int /** * @param string $sealed_data * @param array $encrypted_keys - * @param string $iv + * @param string $initialization_vector */ -function openssl_seal(string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algorithm, &$iv = null): int|false {} +function openssl_seal(string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algorithm, &$initialization_vector = null): int|false {} /** * @param string $output * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key */ -function openssl_open(string $data, &$output, string $encrypted_key, $private_key, string $cipher_algorithm, ?string $iv = null): bool {} +function openssl_open(string $data, &$output, string $encrypted_key, $private_key, string $cipher_algorithm, ?string $initialization_vector = null): bool {} function openssl_get_md_methods(bool $aliases = false): array {} @@ -198,9 +198,9 @@ function openssl_get_curve_names(): array|false {} function openssl_digest(string $data, string $digest_algorithm, bool $raw_output = false): string|false {} /** @param string $tag */ -function openssl_encrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $iv = "", &$tag = null, string $additional_authentication_data = "", int $tag_length = 16): string|false {} +function openssl_encrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $initialization_vector = "", &$tag = null, string $additional_authentication_data = "", int $tag_length = 16): string|false {} -function openssl_decrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $iv = "", string $tag = "", string $additional_authentication_data = ""): string|false {} +function openssl_decrypt(string $data, string $cipher_algorithm, string $passphrase, int $options = 0, string $initialization_vector = "", string $tag = "", string $additional_authentication_data = ""): string|false {} function openssl_cipher_iv_length(string $cipher_algorithm): int|false {} diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h index 6db06be266ae..91a6ab4277b4 100644 --- a/ext/openssl/openssl_arginfo.h +++ b/ext/openssl/openssl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 41d21e985a29902d5628aa4b7dd8a3e2b3744712 */ + * Stub hash: 94b744d0176f126d491a9c385136708da124e332 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0) ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL) @@ -96,7 +96,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_csr_new, 0, 2, OpenS ZEND_ARG_TYPE_INFO(0, distinguished_names, IS_ARRAY, 0) ZEND_ARG_INFO(1, private_key) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extra_attributes, IS_ARRAY, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extra_options, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_csr_get_subject, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE) @@ -165,7 +165,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkcs7_verify, 0, 2, MAY_ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ca_info, IS_ARRAY, 0, "[]") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, content, IS_STRING, 1, "null") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pkcs7_filename, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pk7_filename, IS_STRING, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_encrypt, 0, 4, _IS_BOOL, 0) @@ -283,7 +283,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_seal, 0, 5, MAY_BE_LONG| ZEND_ARG_INFO(1, encrypted_keys) ZEND_ARG_TYPE_INFO(0, public_key, IS_ARRAY, 0) ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, iv, "null") + ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, initialization_vector, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_open, 0, 5, _IS_BOOL, 0) @@ -292,7 +292,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_open, 0, 5, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, encrypted_key, IS_STRING, 0) ZEND_ARG_INFO(0, private_key) ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 1, "null") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_get_md_methods, 0, 0, IS_ARRAY, 0) @@ -317,7 +317,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_encrypt, 0, 3, MAY_BE_ST ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 0, "\"\"") ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, tag, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_authentication_data, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag_length, IS_LONG, 0, "16") @@ -328,7 +328,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_decrypt, 0, 3, MAY_BE_ST ZEND_ARG_TYPE_INFO(0, cipher_algorithm, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initialization_vector, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_authentication_data, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() From 15d89e9d4f1f01f15c45e55b3e365b080673119d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sun, 13 Sep 2020 23:46:43 +0200 Subject: [PATCH 5/8] Test fixes --- ext/mbstring/tests/bug49354.phpt | 9 ++------ ext/mbstring/tests/mb_strcut.phpt | 9 +++----- ext/standard/math.c | 2 +- .../tests/file/fnmatch_maxpathlen.phpt | 22 ++++++------------ ext/standard/tests/mail/mail_basic7.phpt | 23 ++----------------- .../tests/misc/time_sleep_until_error1.phpt | 2 +- .../stream_get_contents_negative_length.phpt | 11 +++++---- ext/standard/tests/strings/bug44703.phpt | 12 +++++----- ext/sysvshm/tests/001.phpt | 4 ++-- 9 files changed, 31 insertions(+), 63 deletions(-) diff --git a/ext/mbstring/tests/bug49354.phpt b/ext/mbstring/tests/bug49354.phpt index d14ca62e3700..1326efca7dd5 100644 --- a/ext/mbstring/tests/bug49354.phpt +++ b/ext/mbstring/tests/bug49354.phpt @@ -10,12 +10,7 @@ var_dump(mb_strcut($crap, 1, 100, 'UTF-8')); var_dump(mb_strcut($crap, 2, 100, 'UTF-8')); var_dump(mb_strcut($crap, 3, 100, 'UTF-8')); var_dump(mb_strcut($crap, 12, 100, 'UTF-8')); - -try { - mb_strcut($crap, 13, 100, 'UTF-8'); -} catch (ValueError $exception) { - echo $exception->getMessage() . "\n"; -} +var_dump(mb_strcut($crap, 13, 100, 'UTF-8')); ?> --EXPECT-- @@ -24,4 +19,4 @@ string(11) "åBäCöDü" string(11) "åBäCöDü" string(9) "BäCöDü" string(0) "" -mb_strcut(): Argument #3 ($length) must be contained in argument #1 ($str) +string(0) "" diff --git a/ext/mbstring/tests/mb_strcut.phpt b/ext/mbstring/tests/mb_strcut.phpt index 90a650800d6b..5c191f7dcd98 100644 --- a/ext/mbstring/tests/mb_strcut.phpt +++ b/ext/mbstring/tests/mb_strcut.phpt @@ -28,11 +28,8 @@ print MBStringChars(mb_strcut($euc_jp, 6, 5,'EUC-JP'), 'EUC-JP') . "\n"; print MBStringChars(mb_strcut($euc_jp, 5, 5,'EUC-JP'), 'EUC-JP') . "\n"; print MBStringChars(mb_strcut($euc_jp, 0, 100,'EUC-JP'), 'EUC-JP') . "\n"; -try { - mb_strcut($euc_jp, 100, 10,'EUC-JP'); -} catch (ValueError $exception) { - echo $exception->getMessage() . "\n"; -} +$str = mb_strcut($euc_jp, 100, 10,'EUC-JP'); +($str === "") ? print "OK\n" : print "No good\n"; $str = mb_strcut($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "OK\n" : print "No good\n"; @@ -63,7 +60,7 @@ print MBStringChars(mb_strcut($utf16le, 1, 4, 'UTF-16LE'), 'UTF-16LE') . "\n"; [a4ce cab8] [a4b3 a4ce] [30 31 32 33 a4b3 a4ce cab8 bbfa cef3 a4cf c6fc cbdc b8ec a4c7 a4b9 a1a3 45 55 43 2d 4a 50 a4f2 bbc8 a4c3 a4c6 a4a4 a4de a4b9 a1a3 c6fc cbdc b8ec a4cf cccc c5dd bdad a4a4 a1a3] -mb_strcut(): Argument #3 ($length) must be contained in argument #1 ($str) +OK OK == UTF-8 == [] diff --git a/ext/standard/math.c b/ext/standard/math.c index fbca5fe218ca..c10dea9a3879 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -877,7 +877,7 @@ PHPAPI zend_string * _php_math_zvaltobase(zval *arg, int base) /* Don't try to convert +/- infinity */ if (fvalue == ZEND_INFINITY || fvalue == -ZEND_INFINITY) { - zend_value_error("An infinite value cannot be converted to base " ZEND_LONG_FMT, base); + zend_value_error("An infinite value cannot be converted to base %d", base); return NULL; } diff --git a/ext/standard/tests/file/fnmatch_maxpathlen.phpt b/ext/standard/tests/file/fnmatch_maxpathlen.phpt index 9ef2dd1a6786..849e7710bbae 100644 --- a/ext/standard/tests/file/fnmatch_maxpathlen.phpt +++ b/ext/standard/tests/file/fnmatch_maxpathlen.phpt @@ -7,20 +7,12 @@ if (!function_exists('fnmatch')) die('skip fnmatch() function is not available') --FILE-- getMessage() . "\n"; -} - -try { - fnmatch($longstring, 'blah'); -} catch (ValueError $exception) { - echo $exception->getMessage() . "\n"; -} - +var_dump(fnmatch('blah', $longstring)); +var_dump(fnmatch($longstring, 'blah')); ?> --EXPECTF-- -fnmatch(): Argument #1 ($pattern) must have a length less than %d bytes -fnmatch(): Argument #2 ($filename) must have a length less than %d bytes +Warning: fnmatch(): Filename exceeds the maximum allowed length of %d characters in %s on line %d +bool(false) + +Warning: fnmatch(): Pattern exceeds the maximum allowed length of %d characters in %s on line %d +bool(false) diff --git a/ext/standard/tests/mail/mail_basic7.phpt b/ext/standard/tests/mail/mail_basic7.phpt index b4957b6151db..a07464574fd7 100644 --- a/ext/standard/tests/mail/mail_basic7.phpt +++ b/ext/standard/tests/mail/mail_basic7.phpt @@ -74,7 +74,7 @@ $to = 'user@example.com'; $subject = 'Test Subject'; $message = 'A Message'; $additional_headers = array( - 'foo1' => array('foo1'=>'bar1'), + 'foo1' => array('foo2'=>'bar1'), 'foo2' => array('foo2', array('foo3')), 'foo3' => array(123), 'foo4' => array(123.456), @@ -153,26 +153,7 @@ TypeError: Header "orig-date" must be of type string, array given ************* TEST ****************** -- All Mail Content Parameters -- - -Warning: mail(): Multiple header key must be numeric index (foo1) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo2) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo3) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo4) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo5) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo6) in %s on line %d - -Warning: mail(): Multiple header values must be string (foo7) in %s on line %d -bool(true) -To: user@example.com -Subject: Test Subject -foo2: foo2 - -A Message +TypeError: Header "foo1" must only contain numeric keys, "foo2" found ************* TEST ****************** diff --git a/ext/standard/tests/misc/time_sleep_until_error1.phpt b/ext/standard/tests/misc/time_sleep_until_error1.phpt index 4afac1aa8f1d..eaa809f4d1a4 100644 --- a/ext/standard/tests/misc/time_sleep_until_error1.phpt +++ b/ext/standard/tests/misc/time_sleep_until_error1.phpt @@ -13,5 +13,5 @@ var_dump(time_sleep_until(time() -1)); ?> --EXPECTF-- -Warning: time_sleep_until(): Argument #1 ($timestamp) must be a timestamp greater than or equal to the current time in %s on line %d +Warning: time_sleep_until(): Argument #1 ($timestamp) must be greater than or equal to the current time in %s on line %d bool(false) diff --git a/ext/standard/tests/streams/stream_get_contents_negative_length.phpt b/ext/standard/tests/streams/stream_get_contents_negative_length.phpt index 56d091c0b449..7bfe8d5724d7 100644 --- a/ext/standard/tests/streams/stream_get_contents_negative_length.phpt +++ b/ext/standard/tests/streams/stream_get_contents_negative_length.phpt @@ -6,11 +6,14 @@ stream_get_contents() with negative max length $tmp = tmpfile(); fwrite($tmp, "abcd"); var_dump(stream_get_contents($tmp, 2, 1)); -var_dump(stream_get_contents($tmp, -2)); + +try { + stream_get_contents($tmp, -2); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} ?> --EXPECTF-- string(2) "bc" - -Warning: stream_get_contents(): Argument #2 ($maxlength) must be greater than or equal to 0, or -1 in %s on line %d -bool(false) +stream_get_contents(): Argument #2 ($maxlength) must be greater than or equal to -1 diff --git a/ext/standard/tests/strings/bug44703.phpt b/ext/standard/tests/strings/bug44703.phpt index d5be483f87a0..8cbff1504ff0 100644 --- a/ext/standard/tests/strings/bug44703.phpt +++ b/ext/standard/tests/strings/bug44703.phpt @@ -22,25 +22,25 @@ var_dump(htmlspecialchars("<>", ENT_COMPAT, str_repeat('a', 100))); ?> --EXPECTF-- -Warning: htmlspecialchars(): Charset "1" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "1" is not supported, assuming UTF-8 in %s on line %d string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset "12" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "12" is not supported, assuming UTF-8 in %s on line %d string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset "125" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "125" is not supported, assuming UTF-8 in %s on line %d string(35) "<a href='test'>Test</a>" string(35) "<a href='test'>Test</a>" -Warning: htmlspecialchars(): Charset "12526" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "12526" is not supported, assuming UTF-8 in %s on line %d string(35) "<a href='test'>Test</a>" string(8) "<>" -Warning: htmlspecialchars(): Charset "8666" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "8666" is not supported, assuming UTF-8 in %s on line %d string(8) "<>" string(8) "<>" string(8) "<>" string(8) "<>" -Warning: htmlspecialchars(): Charset "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" is not supported, assuming utf-8 in %s on line %d +Warning: htmlspecialchars(): Charset "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" is not supported, assuming UTF-8 in %s on line %d string(8) "<>" diff --git a/ext/sysvshm/tests/001.phpt b/ext/sysvshm/tests/001.phpt index e27686592a77..e9d00bc6dc24 100644 --- a/ext/sysvshm/tests/001.phpt +++ b/ext/sysvshm/tests/001.phpt @@ -34,8 +34,8 @@ echo "Done\n"; ?> --EXPECTF-- ftok(): Argument #1 ($pathname) cannot be empty -ftok(): Argument #2 ($proj) must be 1 byte long -ftok(): Argument #2 ($proj) must be 1 byte long +ftok(): Argument #2 ($proj) must be a single character +ftok(): Argument #2 ($proj) must be a single character Warning: ftok(): ftok() failed - No such file or directory in %s on line %d int(-1) From 4543298faa11cef7db1375f06159d1e9a5e00dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 15 Sep 2020 10:41:13 +0200 Subject: [PATCH 6/8] Address review comments --- ext/mbstring/mbstring.c | 2 +- ext/standard/file.c | 11 +- ext/standard/mail.c | 6 +- ext/standard/password.c | 2 +- .../tests/file/popen_pclose_basic2.phpt | 29 +++ .../tests/file/popen_pclose_error.phpt | 38 ++- .../tests/general_functions/bug41037.phpt | 8 +- ext/standard/tests/mail/mail_basic7.phpt | 222 +++++++++++++----- .../password_removed_salt_option.phpt | 4 +- 9 files changed, 224 insertions(+), 98 deletions(-) create mode 100644 ext/standard/tests/file/popen_pclose_basic2.phpt diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index d94049c31f59..274feec35ef5 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -3499,7 +3499,7 @@ PHP_FUNCTION(mb_send_mail) str_headers = php_trim(str_headers, NULL, 0, 2); } else if (headers_ht) { str_headers = php_mail_build_headers(headers_ht); - if (!str_headers) { + if (EG(exception)) { RETURN_THROWS(); } } diff --git a/ext/standard/file.c b/ext/standard/file.c index 7cf8bde67f7a..307d76e59cf6 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -942,20 +942,23 @@ PHP_FUNCTION(popen) mode_len--; } } +#endif /* Musl only partially validates the mode. Manually check it to ensure consistent behavior. */ - if (mode_len != 1 || (*posix_mode != 'r' && *posix_mode != 'w')) { - zend_argument_value_error(2, "must be either \"r\" or \"w\""); + if (mode_len > 2 || + (mode_len == 1 && (*posix_mode != 'r' && *posix_mode != 'w')) || + (mode_len == 2 && (memcmp(posix_mode, "rb", 2) || memcmp(posix_mode, "wb", 2))) + ) { + zend_argument_value_error(2, "must be one of \"r\", \"rb\", \"w\", or \"wb\""); efree(posix_mode); RETURN_THROWS(); } -#endif fp = VCWD_POPEN(command, posix_mode); if (!fp) { php_error_docref2(NULL, command, posix_mode, E_WARNING, "%s", strerror(errno)); efree(posix_mode); - RETURN_FALSE; + RETURN_THROWS(); } stream = php_stream_fopen_from_pipe(fp, mode); diff --git a/ext/standard/mail.c b/ext/standard/mail.c index 1cf195c81a3e..b9d3af76dba4 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -134,11 +134,11 @@ static void php_mail_build_headers_elems(smart_str *s, zend_string *key, zval *v ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(val), tmp_key, tmp_val) { if (tmp_key) { zend_type_error("Header \"%s\" must only contain numeric keys, \"%s\" found", ZSTR_VAL(key), ZSTR_VAL(tmp_key)); - continue; + break; } if (Z_TYPE_P(tmp_val) != IS_STRING) { zend_type_error("Header \"%s\" must only contain values of type string, %s found", ZSTR_VAL(key), zend_zval_type_name(tmp_val)); - continue; + break; } php_mail_build_headers_elem(s, key, tmp_val); } ZEND_HASH_FOREACH_END(); @@ -276,7 +276,7 @@ PHP_FUNCTION(mail) headers_str = php_trim(headers_str, NULL, 0, 2); } else if (headers_ht) { headers_str = php_mail_build_headers(headers_ht); - if (!headers_str) { + if (EG(exception)) { RETURN_THROWS(); } } diff --git a/ext/standard/password.c b/ext/standard/password.c index b894793ea9e1..a19266d21475 100644 --- a/ext/standard/password.c +++ b/ext/standard/password.c @@ -109,7 +109,7 @@ static zend_string* php_password_make_salt(size_t length) /* {{{ */ static zend_string* php_password_get_salt(zval *unused_, size_t required_salt_len, HashTable *options) { if (options && zend_hash_str_exists(options, "salt", sizeof("salt") - 1)) { - php_error_docref(NULL, E_WARNING, "The \"salt\" option is ignored, since providing a custom salt is no longer supported"); + php_error_docref(NULL, E_WARNING, "The \"salt\" option has been ignored, since providing a custom salt is no longer supported"); } return php_password_make_salt(required_salt_len); diff --git a/ext/standard/tests/file/popen_pclose_basic2.phpt b/ext/standard/tests/file/popen_pclose_basic2.phpt new file mode 100644 index 000000000000..9454c79cbc51 --- /dev/null +++ b/ext/standard/tests/file/popen_pclose_basic2.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test popen() and pclose function +--SKIPIF-- + +--FILE-- + +--CLEAN-- + +--EXPECT-- +--- Done --- diff --git a/ext/standard/tests/file/popen_pclose_error.phpt b/ext/standard/tests/file/popen_pclose_error.phpt index fea5734dca12..6c92708dddb7 100644 --- a/ext/standard/tests/file/popen_pclose_error.phpt +++ b/ext/standard/tests/file/popen_pclose_error.phpt @@ -1,36 +1,28 @@ --TEST-- Test popen() and pclose function: error conditions ---SKIPIF-- - --FILE-- getMessage() . "\n"; } -$file_handle = fopen($file_path."/popen.tmp", "w"); -fclose($file_handle); -echo "\n--- Done ---"; +try { + popen("abc.txt", "rw"); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} + +try { + popen("abc.txt", "rwb"); +} catch (ValueError $exception) { + echo $exception->getMessage() . "\n"; +} -?> ---CLEAN-- - --EXPECT-- -*** Testing for error conditions *** -popen(): Argument #2 ($mode) must be either "r" or "w" - ---- Done --- +popen(): Argument #2 ($mode) must be one of "r", "rb", "w", or "wb" +popen(): Argument #2 ($mode) must be one of "r", "rb", "w", or "wb" +popen(): Argument #2 ($mode) must be one of "r", "rb", "w", or "wb" diff --git a/ext/standard/tests/general_functions/bug41037.phpt b/ext/standard/tests/general_functions/bug41037.phpt index 783b7c2acd73..683b18ec2515 100644 --- a/ext/standard/tests/general_functions/bug41037.phpt +++ b/ext/standard/tests/general_functions/bug41037.phpt @@ -4,7 +4,7 @@ Bug #41037 (unregister_tick_function() inside the tick function crash PHP) --EXPECT-- -helloRegistered tick function cannot be unregistered while it is being executed +hello +Registered tick function cannot be unregistered while it is being executed Done -helloRegistered tick function cannot be unregistered while it is being executed +hello +Registered tick function cannot be unregistered while it is being executed diff --git a/ext/standard/tests/mail/mail_basic7.phpt b/ext/standard/tests/mail/mail_basic7.phpt index a07464574fd7..47614c011eb7 100644 --- a/ext/standard/tests/mail/mail_basic7.phpt +++ b/ext/standard/tests/mail/mail_basic7.phpt @@ -29,13 +29,10 @@ $outFile = "mailBasic7.out"; echo "-- All Mail Content Parameters --\n"; // Calling mail() with all additional headers -try { - var_dump(mail($to, $subject, $message, $additional_headers)); - echo file_get_contents($outFile); - unlink($outFile); -} catch (TypeError|ValueError $exception) { - echo get_class($exception) . ": " . $exception->getMessage() . "\n"; -} + +var_dump(mail($to, $subject, $message, $additional_headers)); +echo file_get_contents($outFile); +unlink($outFile); echo "\n\n************* TEST ******************\n"; // Should fail all @@ -43,26 +40,51 @@ echo "\n\n************* TEST ******************\n"; $to = 'user@example.com'; $subject = 'Test Subject'; $message = 'A Message'; -// Headers should not have array values -$additional_headers = array( - 'orig-date' => array('foo1'), - 'from' => array('foo2'), - 'sender' => array('foo3'), - 'reply-to' => array('foo4'), - 'to' => array('foo5'), - 'bcc' => array('foo6'), - 'message-id' => array('foo7'), - 'in-reply-to'=> array('foo8'), -); -$outFile = "mailBasic7.out"; -@unlink($outFile); -echo "-- All Mail Content Parameters --\n"; -// Calling mail() with all additional headers try { - var_dump(mail($to, $subject, $message, $additional_headers)); - echo file_get_contents($outFile); - unlink($outFile); + mail($to, $subject, $message, ['orig-date' => array('foo1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['from' => array('foo2')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['sender' => array('foo3')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['reply-to' => array('foo4')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['to' => array('foo5')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['bcc' => array('foo6')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['message-id' => array('foo7')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['in-reply-to'=> array('foo8')]); } catch (TypeError|ValueError $exception) { echo get_class($exception) . ": " . $exception->getMessage() . "\n"; } @@ -73,24 +95,45 @@ echo "\n\n************* TEST ******************\n"; $to = 'user@example.com'; $subject = 'Test Subject'; $message = 'A Message'; -$additional_headers = array( - 'foo1' => array('foo2'=>'bar1'), - 'foo2' => array('foo2', array('foo3')), - 'foo3' => array(123), - 'foo4' => array(123.456), - 'foo5' => array(FALSE), - 'foo6' => array(NULL), - 'foo7' => array(new StdClass), -); -$outFile = "mailBasic7.out"; -@unlink($outFile); -echo "-- All Mail Content Parameters --\n"; -// Calling mail() with all additional headers try { - var_dump(mail($to, $subject, $message, $additional_headers)); - echo file_get_contents($outFile); - unlink($outFile); + mail($to, $subject, $message, ['foo1' => array('foo2'=>'bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo2' => array('foo2', array('foo3'))]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo3' => array(123)]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo4' => array(123.456)]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo5' => array(FALSE)]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo6' => array(NULL)]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo7' => array(new StdClass)]); } catch (TypeError|ValueError $exception) { echo get_class($exception) . ": " . $exception->getMessage() . "\n"; } @@ -101,27 +144,64 @@ echo "\n\n************* TEST ******************\n"; $to = 'user@example.com'; $subject = 'Test Subject'; $message = 'A Message'; -$additional_headers = array( - '*:foo1' => array('bar1'), - 'foo2:::' => array('bar1'), - 'foo3()' => array('bar1'), - 'foo4@' => array('bar1'), - 'foo5|' => array('bar1'), - "\0foo6" => array('bar1'), - "foo7\0" => array('bar1'), - "foo8" => array(), - "foo9" => '%&$#!', - "foo10" => "abc\0\tdef", -); + $outFile = "mailBasic7.out"; @unlink($outFile); -echo "-- All Mail Content Parameters --\n"; -// Calling mail() with all additional headers try { - var_dump(mail($to, $subject, $message, $additional_headers)); - echo file_get_contents($outFile); - unlink($outFile); + mail($to, $subject, $message, ['*:foo1' => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo2:::' => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo3()' => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo4@' => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ['foo5|' => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ["\0foo6" => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ["foo7\0" => array('bar1')]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +try { + mail($to, $subject, $message, ["foo8" => array()]); +} catch (TypeError|ValueError $exception) { + echo get_class($exception) . ": " . $exception->getMessage() . "\n"; +} + +var_dump(mail($to, $subject, $message, ["foo9" => '%&$#!'])); +echo file_get_contents($outFile); +unlink($outFile); + +try { + mail($to, $subject, $message, ["foo10" => "abc\0\tdef"]); } catch (TypeError|ValueError $exception) { echo get_class($exception) . ": " . $exception->getMessage() . "\n"; } @@ -147,15 +227,35 @@ A Message ************* TEST ****************** --- All Mail Content Parameters -- TypeError: Header "orig-date" must be of type string, array given +TypeError: Header "from" must be of type string, array given +TypeError: Header "sender" must be of type string, array given +TypeError: Header "reply-to" must be of type string, array given +ValueError: The additional headers cannot contain the "To" header +TypeError: Header "bcc" must be of type string, array given +TypeError: Header "message-id" must be of type string, array given +TypeError: Header "in-reply-to" must be of type string, array given ************* TEST ****************** --- All Mail Content Parameters -- TypeError: Header "foo1" must only contain numeric keys, "foo2" found +TypeError: Header "foo2" must only contain values of type string, array found +TypeError: Header "foo3" must only contain values of type string, int found +TypeError: Header "foo4" must only contain values of type string, float found +TypeError: Header "foo5" must only contain values of type string, bool found +TypeError: Header "foo6" must only contain values of type string, null found +TypeError: Header "foo7" must only contain values of type string, stdClass found ************* TEST ****************** --- All Mail Content Parameters -- ValueError: Header name "*:foo1" contains invalid characters +ValueError: Header name "foo2:::" contains invalid characters +ValueError: Header name "" contains invalid characters +ValueError: Header name "foo7" contains invalid characters +bool(true) +To: user@example.com +Subject: Test Subject +foo9: %&$#! + +A Message +ValueError: Header "foo10" has invalid format, or contains invalid characters diff --git a/ext/standard/tests/password/password_removed_salt_option.phpt b/ext/standard/tests/password/password_removed_salt_option.phpt index e2742ff76db1..da7cb22d1c54 100644 --- a/ext/standard/tests/password/password_removed_salt_option.phpt +++ b/ext/standard/tests/password/password_removed_salt_option.phpt @@ -12,9 +12,9 @@ var_dump(strlen(password_hash("test", PASSWORD_BCRYPT, array("salt" => "12345678 echo "OK!"; ?> --EXPECTF-- -Warning: password_hash(): The "salt" option is ignored, since providing a custom salt is no longer supported in %s on line %d +Warning: password_hash(): The "salt" option has been ignored, since providing a custom salt is no longer supported in %s on line %d int(60) -Warning: password_hash(): The "salt" option is ignored, since providing a custom salt is no longer supported in %s on line %d +Warning: password_hash(): The "salt" option has been ignored, since providing a custom salt is no longer supported in %s on line %d int(60) OK! From da80b64d25699a0b739372c142274d7a975cf810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 15 Sep 2020 11:50:49 +0200 Subject: [PATCH 7/8] Fix another batch of comments --- ext/standard/file.c | 2 +- ext/standard/mail.c | 2 +- ext/standard/php_mail.h | 2 +- .../tests/file/glob_error_002-win32.phpt | 4 +-- .../tests/file/popen_pclose_basic2.phpt | 29 ------------------ .../tests/file/popen_pclose_error-win32.phpt | 30 ------------------- 6 files changed, 5 insertions(+), 64 deletions(-) delete mode 100644 ext/standard/tests/file/popen_pclose_basic2.phpt delete mode 100644 ext/standard/tests/file/popen_pclose_error-win32.phpt diff --git a/ext/standard/file.c b/ext/standard/file.c index 307d76e59cf6..3d1751e86a97 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -958,7 +958,7 @@ PHP_FUNCTION(popen) if (!fp) { php_error_docref2(NULL, command, posix_mode, E_WARNING, "%s", strerror(errno)); efree(posix_mode); - RETURN_THROWS(); + RETURN_FALSE; } stream = php_stream_fopen_from_pipe(fp, mode); diff --git a/ext/standard/mail.c b/ext/standard/mail.c index b9d3af76dba4..3080a3957bb9 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -155,7 +155,7 @@ PHPAPI zend_string *php_mail_build_headers(HashTable *headers) ZEND_HASH_FOREACH_KEY_VAL(headers, idx, key, val) { if (!key) { zend_type_error("Header name cannot be numeric, " ZEND_LONG_FMT " given", idx); - continue; + break; } /* https://tools.ietf.org/html/rfc2822#section-3.6 */ switch(ZSTR_LEN(key)) { diff --git a/ext/standard/php_mail.h b/ext/standard/php_mail.h index 2a5bb8c0c6bd..7e7a758545f1 100644 --- a/ext/standard/php_mail.h +++ b/ext/standard/php_mail.h @@ -29,7 +29,7 @@ do { \ } else if (Z_TYPE_P(val) == IS_ARRAY) { \ if (!strncasecmp(target, ZSTR_VAL(key), ZSTR_LEN(key))) { \ zend_type_error("Header \"%s\" must be of type string, array given", target); \ - continue; \ + break; \ } \ php_mail_build_headers_elems(&s, key, val); \ } else { \ diff --git a/ext/standard/tests/file/glob_error_002-win32.phpt b/ext/standard/tests/file/glob_error_002-win32.phpt index ae21c30b92bc..d47bd55b372d 100644 --- a/ext/standard/tests/file/glob_error_002-win32.phpt +++ b/ext/standard/tests/file/glob_error_002-win32.phpt @@ -19,7 +19,7 @@ try { echo "Done"; ?> ---EXPECT-- +--EXPECTF-- *** Testing glob() : error condition - pattern too long. *** -glob(): Argument #1 ($pattern) must have a length less than 2048 bytes +glob(): Argument #1 ($pattern) must have a length less than %d bytes Done diff --git a/ext/standard/tests/file/popen_pclose_basic2.phpt b/ext/standard/tests/file/popen_pclose_basic2.phpt deleted file mode 100644 index 9454c79cbc51..000000000000 --- a/ext/standard/tests/file/popen_pclose_basic2.phpt +++ /dev/null @@ -1,29 +0,0 @@ ---TEST-- -Test popen() and pclose function ---SKIPIF-- - ---FILE-- - ---CLEAN-- - ---EXPECT-- ---- Done --- diff --git a/ext/standard/tests/file/popen_pclose_error-win32.phpt b/ext/standard/tests/file/popen_pclose_error-win32.phpt deleted file mode 100644 index 0b5af3d53a13..000000000000 --- a/ext/standard/tests/file/popen_pclose_error-win32.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Test popen() and pclose function: error conditions on Windows ---SKIPIF-- - ---FILE-- - ---CLEAN-- - ---EXPECT-- -*** Testing for error conditions *** - -Warning: popen(abc.txt,rw): No such file or directory in %s on line %d - ---- Done --- From 448f74dcc12ac423f313e8cfdcc06d9bcf4ce3db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 15 Sep 2020 13:32:30 +0200 Subject: [PATCH 8/8] Fix Windows tests --- ext/standard/file.c | 2 +- ext/standard/tests/file/glob_error_002-win32.phpt | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/ext/standard/file.c b/ext/standard/file.c index 3d1751e86a97..224e69ffdd55 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -947,7 +947,7 @@ PHP_FUNCTION(popen) /* Musl only partially validates the mode. Manually check it to ensure consistent behavior. */ if (mode_len > 2 || (mode_len == 1 && (*posix_mode != 'r' && *posix_mode != 'w')) || - (mode_len == 2 && (memcmp(posix_mode, "rb", 2) || memcmp(posix_mode, "wb", 2))) + (mode_len == 2 && (memcmp(posix_mode, "rb", 2) && memcmp(posix_mode, "wb", 2))) ) { zend_argument_value_error(2, "must be one of \"r\", \"rb\", \"w\", or \"wb\""); efree(posix_mode); diff --git a/ext/standard/tests/file/glob_error_002-win32.phpt b/ext/standard/tests/file/glob_error_002-win32.phpt index d47bd55b372d..52b75fee43d2 100644 --- a/ext/standard/tests/file/glob_error_002-win32.phpt +++ b/ext/standard/tests/file/glob_error_002-win32.phpt @@ -11,15 +11,12 @@ if(substr(PHP_OS, 0, 3) != "WIN") getMessage() . "\n"; -} +glob(str_repeat('x', 3000)); echo "Done"; ?> --EXPECTF-- *** Testing glob() : error condition - pattern too long. *** -glob(): Argument #1 ($pattern) must have a length less than %d bytes + +Warning: glob(): Pattern exceeds the maximum allowed length of %d characters in %s on line %d Done