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 8454c4fd162ba..acce5126bf277 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 91a6ab4277b4f..6db06be266ae6 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 055e5f574dc04..0dde757d84cec 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 58797eb24450b..e1fb2472e445a 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 3be9aad66c85b..74f86404cf4eb 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 8bea3306f2eac..27b692c26f617 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 c25b405d82032..d14ca62e37008 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 40cc3ddb0dcef..90a650800d6bf 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 18f7d3db1ddd1..bbe88ba206c12 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 58c4d815b7c80..bd2823a4076ca 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 922bcab330baa..5df5dd772aa81 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 a251770d97ad8..0b771fbd49189 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 8c684028adbf6..e27c934c0371f 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 e9ee1b1f0e176..f4e38c5860f06 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 98bff12fc2bc3..ca85b537798f4 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 233103f83d00e..8d6bbb52e8b00 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 6f29343d9f34c..414e3a2495108 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 04830fb6df623..77fddb6304b20 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 dfed889875381..8e3d2bf64af75 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 af7d5f114bcbd..487282b642e09 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 4f723be365dfa..d11eef919e959 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 9f22c75840200..424dad44f4263 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 687a780d1d556..b894793ea9e18 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 2a561d55233f5..2a5bb8c0c6bda 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 50e0a38d9bc6a..1310c88744e2e 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 b3d357baa88bf..7e6f05ad71c7c 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 1231c44c936db..ab43df7e5cb6b 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 8c3ee9a16019f..978120e822cea 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 5187cb77ebd60..da8844d38b276 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 a540dd662cfca..2e3661d50b90b 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 f1dfc52a27664..34a855c2d11da 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 dd5aa73567bde..bf692c7be9a25 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 f99ccd62d8159..1a6ef177523fa 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 849e7710bbae5..9ef2dd1a67867 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 eb2746790bff7..7c1d71093ee7e 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 e5e98c5ce2665..5c4c669e7f562 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 e030c41bd2057..957fb9966f38e 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 4597e28e4b650..ae21c30b92bc6 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 0000000000000..0b5af3d53a138 --- /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 2f05e7788d982..fea5734dca124 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 99971616d215d..31b8bed9050c2 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 ff7bf9f056e63..09735c9d86c48 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 c8d0a668d0106..783b7c2acd73d 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 263c9a6def492..823ee70cec8ca 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 ca450f1bc43ba..2b71b474a013b 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 54d020e46ce2a..b4957b6151dbf 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 2a409a38b407f..dedc751e463b1 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 356bdec3e8aab..e2742ff76db16 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 ae108ba53a740..86066607fbcbe 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 22fce0d1f2624..de7ff6d3e1a4f 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 f1c45d25cc9c2..bf62c7da1eea8 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 19f07fe9891e4..440c18772d53d 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 312f22226c21c..1899e21f0472a 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 df9db6a473a71..ac0c835a45a92 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 05a638cfba8d7..3c7f802e670b6 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 25bad8b1b1f49..f390c36a78fef 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 a0efebc1f193c..56d091c0b449f 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 b71f28044aefd..609e47732a6d6 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 f9f0e6ea8f0f8..d5be483f87a02 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 eab2112afa359..bd758a1c79fde 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 a98a51bea26fc..3b871ac0da3d8 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 648d9b51e8c67..dc0d3d9834eb6 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 8199a2ed0571b..b0a2a2321d025 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 106f6699ee87a..e27686592a772 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 f6f33fbf805f8..ea7ae1ed9a1cc 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 e1fb2472e445a..d94049c31f599 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 5df5dd772aa81..d0c8805fe461a 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 ca85b537798f4..98bff12fc2bc3 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 8d6bbb52e8b00..b7e3b3bfeb8ad 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 414e3a2495108..7cf8bde67f7af 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 77fddb6304b20..1f17ced7d995e 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 8e3d2bf64af75..463e55c255cb8 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 487282b642e09..1cf195c81a3e0 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 d11eef919e959..fbca5fe218caf 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 1310c88744e2e..8e4c4ff2611a6 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 823ee70cec8ca..0fe2a5814343a 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 dedc751e463b1..4afac1aa8f1d1 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 acce5126bf277..8454c4fd162ba 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 6db06be266ae6..91a6ab4277b4f 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 d14ca62e37008..1326efca7dd5a 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 90a650800d6bf..5c191f7dcd983 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 fbca5fe218caf..c10dea9a3879f 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 9ef2dd1a67867..849e7710bbae5 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 b4957b6151dbf..a07464574fd7f 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 4afac1aa8f1d1..eaa809f4d1a4d 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 56d091c0b449f..7bfe8d5724d73 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 d5be483f87a02..8cbff1504ff04 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 e27686592a772..e9d00bc6dc24c 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 d94049c31f599..274feec35ef5b 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 7cf8bde67f7af..307d76e59cf6f 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 1cf195c81a3e0..b9d3af76dba40 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 b894793ea9e18..a19266d21475c 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 0000000000000..9454c79cbc510 --- /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 fea5734dca124..6c92708dddb74 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 783b7c2acd73d..683b18ec25156 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 a07464574fd7f..47614c011eb76 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 e2742ff76db16..da7cb22d1c543 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 307d76e59cf6f..3d1751e86a97b 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 b9d3af76dba40..3080a3957bb9c 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 2a5bb8c0c6bda..7e7a758545f1f 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 ae21c30b92bc6..d47bd55b372d9 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 9454c79cbc510..0000000000000 --- 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 0b5af3d53a138..0000000000000 --- 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 3d1751e86a97b..224e69ffdd553 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 d47bd55b372d9..52b75fee43d28 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