* <pre>
* - HTTP_URL_REPLACE: (default) set parts of the second url will replace the parts in the first
* - HTTP_URL_JOIN_PATH: the path of the second url will be merged into the one of the first
- * - HTTP_URL_JOIN_QUERY: the two querystrings will be merged naivly; no replacements are done
+ * - HTTP_URL_JOIN_QUERY: the two querystrings will be merged recursively
* - HTTP_URL_STRIP_USER: the user part will not appear in the result
* - HTTP_URL_STRIP_PASS: the password part will not appear in the result
* - HTTP_URL_STRIP_AUTH: neither the user nor the password part will appear in the result
if (new_url) {
php_url_free(new_url);
}
- php_url_free(old_url);
+ if (old_url) {
+ php_url_free(old_url);
+ }
RETURN_STRINGL(url_str, url_len, 0);
}
}
}
+/* {{{ proto object http_parse_params(string param)
+ *
+ * Parse parameter list.
+ */
+PHP_FUNCTION(http_parse_params)
+{
+ char *param;
+ int param_len;
+
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", ¶m, ¶m_len)) {
+ RETURN_FALSE;
+ }
+
+ object_init(return_value);
+ if (SUCCESS != http_parse_params(param, HASH_OF(return_value))) {
+ zval_dtor(return_value);
+ RETURN_FALSE;
+ }
+}
+/* }}} */
+
/* {{{ proto array http_get_request_headers(void)
*
* Get a list of incoming HTTP headers.