@@ -741,54 +741,60 @@ static ZEND_FUNCTION(zend_test_uri_parser)
741
741
RETURN_THROWS ();
742
742
}
743
743
744
- uri_internal_t * uri = php_uri_parse (parser , ZSTR_VAL (uri_string ), ZSTR_LEN (uri_string ), false);
745
- if (uri == NULL ) {
744
+ void * parsed = parser -> parse_uri (ZSTR_VAL (uri_string ), ZSTR_LEN (uri_string ),
745
+ /* base_url */ NULL , /* errors */ NULL , /* silent */ false);
746
+ if (parsed == NULL ) {
746
747
RETURN_THROWS ();
747
748
}
748
749
750
+ uri_internal_t uri = {
751
+ .parser = parser ,
752
+ .uri = parsed ,
753
+ };
754
+
749
755
zval value ;
750
756
751
757
array_init (return_value );
752
758
zval normalized ;
753
759
array_init (& normalized );
754
- php_uri_get_scheme (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
760
+ php_uri_get_scheme (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
755
761
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_SCHEME ), & value );
756
- php_uri_get_username (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
762
+ php_uri_get_username (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
757
763
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_USERNAME ), & value );
758
- php_uri_get_password (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
764
+ php_uri_get_password (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
759
765
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_PASSWORD ), & value );
760
- php_uri_get_host (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
766
+ php_uri_get_host (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
761
767
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_HOST ), & value );
762
- php_uri_get_port (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
768
+ php_uri_get_port (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
763
769
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_PORT ), & value );
764
- php_uri_get_path (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
770
+ php_uri_get_path (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
765
771
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_PATH ), & value );
766
- php_uri_get_query (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
772
+ php_uri_get_query (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
767
773
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_QUERY ), & value );
768
- php_uri_get_fragment (uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
774
+ php_uri_get_fragment (& uri , URI_COMPONENT_READ_NORMALIZED_ASCII , & value );
769
775
zend_hash_add (Z_ARR (normalized ), ZSTR_KNOWN (ZEND_STR_FRAGMENT ), & value );
770
776
zend_hash_str_add (Z_ARR_P (return_value ), "normalized" , strlen ("normalized" ), & normalized );
771
777
zval raw ;
772
778
array_init (& raw );
773
- php_uri_get_scheme (uri , URI_COMPONENT_READ_RAW , & value );
779
+ php_uri_get_scheme (& uri , URI_COMPONENT_READ_RAW , & value );
774
780
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_SCHEME ), & value );
775
- php_uri_get_username (uri , URI_COMPONENT_READ_RAW , & value );
781
+ php_uri_get_username (& uri , URI_COMPONENT_READ_RAW , & value );
776
782
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_USERNAME ), & value );
777
- php_uri_get_password (uri , URI_COMPONENT_READ_RAW , & value );
783
+ php_uri_get_password (& uri , URI_COMPONENT_READ_RAW , & value );
778
784
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_PASSWORD ), & value );
779
- php_uri_get_host (uri , URI_COMPONENT_READ_RAW , & value );
785
+ php_uri_get_host (& uri , URI_COMPONENT_READ_RAW , & value );
780
786
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_HOST ), & value );
781
- php_uri_get_port (uri , URI_COMPONENT_READ_RAW , & value );
787
+ php_uri_get_port (& uri , URI_COMPONENT_READ_RAW , & value );
782
788
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_PORT ), & value );
783
- php_uri_get_path (uri , URI_COMPONENT_READ_RAW , & value );
789
+ php_uri_get_path (& uri , URI_COMPONENT_READ_RAW , & value );
784
790
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_PATH ), & value );
785
- php_uri_get_query (uri , URI_COMPONENT_READ_RAW , & value );
791
+ php_uri_get_query (& uri , URI_COMPONENT_READ_RAW , & value );
786
792
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_QUERY ), & value );
787
- php_uri_get_fragment (uri , URI_COMPONENT_READ_RAW , & value );
793
+ php_uri_get_fragment (& uri , URI_COMPONENT_READ_RAW , & value );
788
794
zend_hash_add (Z_ARR (raw ), ZSTR_KNOWN (ZEND_STR_FRAGMENT ), & value );
789
795
zend_hash_str_add (Z_ARR_P (return_value ), "raw" , strlen ("raw" ), & raw );
790
796
791
- php_uri_free ( uri );
797
+ parser -> free_uri ( parsed );
792
798
}
793
799
794
800
static bool has_opline (zend_execute_data * execute_data )
0 commit comments