LCOV - code coverage report
Current view: top level - ext/http - php_http_url.h (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 5 5 100.0 %
Date: 2015-02-17 20:30:22 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :     +--------------------------------------------------------------------+
       3             :     | PECL :: http                                                       |
       4             :     +--------------------------------------------------------------------+
       5             :     | Redistribution and use in source and binary forms, with or without |
       6             :     | modification, are permitted provided that the conditions mentioned |
       7             :     | in the accompanying LICENSE file are met.                          |
       8             :     +--------------------------------------------------------------------+
       9             :     | Copyright (c) 2004-2014, Michael Wallner <mike@php.net>            |
      10             :     +--------------------------------------------------------------------+
      11             : */
      12             : 
      13             : #ifndef PHP_HTTP_URL_H
      14             : #define PHP_HTTP_URL_H
      15             : 
      16             : #include <ext/standard/url.h>
      17             : 
      18             : /* php_http_url_mod() */
      19             : #define PHP_HTTP_URL_REPLACE            0x000
      20             : #define PHP_HTTP_URL_JOIN_PATH          0x001
      21             : #define PHP_HTTP_URL_JOIN_QUERY         0x002
      22             : #define PHP_HTTP_URL_STRIP_USER         0x004
      23             : #define PHP_HTTP_URL_STRIP_PASS         0x008
      24             : #define PHP_HTTP_URL_STRIP_AUTH         (PHP_HTTP_URL_STRIP_USER|PHP_HTTP_URL_STRIP_PASS)
      25             : #define PHP_HTTP_URL_STRIP_PORT         0x020
      26             : #define PHP_HTTP_URL_STRIP_PATH         0x040
      27             : #define PHP_HTTP_URL_STRIP_QUERY        0x080
      28             : #define PHP_HTTP_URL_STRIP_FRAGMENT     0x100
      29             : #define PHP_HTTP_URL_STRIP_ALL ( \
      30             :         PHP_HTTP_URL_STRIP_AUTH | \
      31             :         PHP_HTTP_URL_STRIP_PORT | \
      32             :         PHP_HTTP_URL_STRIP_PATH | \
      33             :         PHP_HTTP_URL_STRIP_QUERY | \
      34             :         PHP_HTTP_URL_STRIP_FRAGMENT \
      35             : )
      36             : #define PHP_HTTP_URL_FROM_ENV           0x1000
      37             : #define PHP_HTTP_URL_SANITIZE_PATH      0x2000
      38             : 
      39             : /* parse multibyte according to locale */
      40             : #define PHP_HTTP_URL_PARSE_MBLOC        0x10000
      41             : /* parse utf8 multibyte sequences */
      42             : #define PHP_HTTP_URL_PARSE_MBUTF8       0x20000
      43             : /* convert multibyte hostnames to IDNA */
      44             : #define PHP_HTTP_URL_PARSE_TOIDN        0x100000
      45             : /* percent encode multibyte sequences in userinfo, path, query and fragment */
      46             : #define PHP_HTTP_URL_PARSE_TOPCT        0x200000
      47             : 
      48             : typedef struct php_http_url {
      49             :         /* compatible to php_url, but do not use php_url_free() */
      50             :         char *scheme;
      51             :         char *user;
      52             :         char *pass;
      53             :         char *host;
      54             :         unsigned short port;
      55             :         char *path;
      56             :         char *query;
      57             :         char *fragment;
      58             : } php_http_url_t;
      59             : 
      60             : PHP_HTTP_API php_http_url_t *php_http_url_parse(const char *str, size_t len, unsigned flags TSRMLS_DC);
      61             : PHP_HTTP_API php_http_url_t *php_http_url_parse_authority(const char *str, size_t len, unsigned flags TSRMLS_DC);
      62             : PHP_HTTP_API php_http_url_t *php_http_url_mod(const php_http_url_t *old_url, const php_http_url_t *new_url, unsigned flags TSRMLS_DC);
      63             : PHP_HTTP_API php_http_url_t *php_http_url_copy(const php_http_url_t *url, zend_bool persistent);
      64             : PHP_HTTP_API php_http_url_t *php_http_url_from_struct(HashTable *ht);
      65             : PHP_HTTP_API php_http_url_t *php_http_url_from_zval(zval *value, unsigned flags TSRMLS_DC);
      66             : PHP_HTTP_API HashTable *php_http_url_to_struct(const php_http_url_t *url, zval *strct TSRMLS_DC);
      67             : PHP_HTTP_API char *php_http_url_to_string(const php_http_url_t *url, char **url_str, size_t *url_len, zend_bool persistent);
      68             : PHP_HTTP_API char *php_http_url_authority_to_string(const php_http_url_t *url, char **url_str, size_t *url_len);
      69             : PHP_HTTP_API void php_http_url_free(php_http_url_t **url);
      70             : 
      71             : PHP_HTTP_API STATUS php_http_url_encode_hash(HashTable *hash, const char *pre_encoded_str, size_t pre_encoded_len, char **encoded_str, size_t *encoded_len TSRMLS_DC);
      72             : PHP_HTTP_API STATUS php_http_url_encode_hash_ex(HashTable *hash, php_http_buffer_t *qstr, const char *arg_sep_str, size_t arg_sep_len, const char *val_sep_str, size_t val_sep_len, const char *pre_encoded_str, size_t pre_encoded_len TSRMLS_DC);
      73             : 
      74          27 : static inline void php_http_url_argsep(const char **str, size_t *len TSRMLS_DC)
      75             : {
      76          27 :         php_http_ini_entry(ZEND_STRL("arg_separator.output"), str, len, 0 TSRMLS_CC);
      77          27 : }
      78             : 
      79           3 : static inline zend_bool php_http_url_is_empty(const php_http_url_t *url) {
      80           3 :         return !(url->scheme || url->pass || url->user || url->host || url->port ||      url->path || url->query || url->fragment);
      81             : }
      82             : 
      83             : PHP_HTTP_API zend_class_entry *php_http_url_class_entry;
      84             : PHP_MINIT_FUNCTION(http_url);
      85             : 
      86             : #define php_http_url_object_new php_http_object_new
      87             : #define php_http_url_object_new_ex php_http_object_new_ex
      88             : 
      89             : #endif
      90             : 
      91             : /*
      92             :  * Local variables:
      93             :  * tab-width: 4
      94             :  * c-basic-offset: 4
      95             :  * End:
      96             :  * vim600: noet sw=4 ts=4 fdm=marker
      97             :  * vim<600: noet sw=4 ts=4
      98             :  */
      99             : 

Generated by: LCOV version 1.11